tmux+pwndbg代码调试终端美化

​ pwntools是一个挺好用的工具,不过当我尝试在远程调试代码的时候,会遇到调试窗口默认找不到的情况,于是找到了使用tmux作为解决方案,但是tmux没办法很方便的用滚轮翻页,使用起来不是很方便查看内容,再加上tmux的窗格功能让我想要将内容分散到各个地方。一番搜索之后发现splitmind这个项目很合适,gdb调试的时候很方便。但是代码进入的时候与程序交互的那个窗口自己占了一半,让我本就不宽阔的空间更加拥挤。又一番搜索之后发现现在可以在创建窗格的时候直接控制比例了,又发现pwntools可以设置调试时使用的终端命令及参数。于是最终也是把调试窗口变成了自己希望的样子。如下

tmux配合pwndbg调试,及美化

代码调试

​ 调试的时候先进入tmux,然后使用gdb.attach(sh) 进入调试就好。

美化

​ 最初是根据这篇文章开始的美化,推荐都去看一下。[分享] pwndbg+tmux真乃天作之合

事已至此,分享一下我的配置文件吧

# ~/.gdbinit文件内容
source ~/.pwndbg/gdbinit.py
source ~/.splitmind/gdbinit.py

set context-clear-screen on
set follow-fork-mode parent

python
import splitmind
(splitmind.Mind()
  .tell_splitter(show_titles=True)
  .below(display="regs")
  .right(display="stack", cmd="grep rax", use_stdin=True,size="70%")
  .below(display="backtrace")
  .right(cmd='sleep 1; htop')
  .right(of="main", display="legend")
  .show("disasm", on="legend")
).build(nobanner=True)
end
set context-code-lines 15
set context-source-code-lines 15
set context-sections  "regs args code disasm stack backtrace"

因为后续窗格的分配都是splitmind项目的简单应用,关于该项目如何使用,请自行搜索github

配置好之后gdb直接进调试是这样子的

这个看起来挺不错的,但是一旦从pwntools里进去就完蛋

进入调试时窗格设置比例

​ 搜了一下,发现pwntools可以指定terminal参数,详见:传送门

$ context.terminal = ['tmux', 'splitw', '-h']

我看到的例子是用来设置调试窗口的窗格,省的弹出来个新窗口。

​ 然后找到了tmux现在的命令可以在创建窗格的同时设置比例了,详见tmux如何设置比例,下面是一个例子

$ tmux splitw -h -l 66%

然后我把命令一替换,问题就这样轻松地解决了。

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇