是否有用于 GDB 的 GUI(甚至 CLI 脚本),可以使用保存的寄存器、每个帧等注释堆栈视图?应该可以在每次调用时收集此信息并将其添加到堆栈视图中。目前,我最终只是用类似 的东西来查看堆栈x/40wx $esp
,这并不是很有启发性。
在 GDB 中注释堆栈?
逆向工程
调试器
数据库
2021-06-24 11:06:59
1个回答
Nemiver是 GDB 的 GUI,可能包含所有这些功能(请参阅功能页面以了解更多信息)。
但是,正如 0xC0000022L 在对您的问题的评论中提到的那样,GDB 已经通过info frame
命令 (shorthand i f
) 和backtrace
命令 (shorthand bt
)具有此类功能。
(gdb) info frame
Stack level 0, frame at 0x7fffffffe250:
rip = 0x400517 in foo (hello.c:6); saved rip 0x400531
called by frame at 0x7fffffffe260
source language c.
Arglist at 0x7fffffffe240, args: val=10
Locals at 0x7fffffffe240, Previous frame's sp is 0x7fffffffe250
Saved registers:
rbp at 0x7fffffffe240, rip at 0x7fffffffe248
(gdb) backtrace
#0 foo (val=10) at hello.c:6
#1 0x0000000000400531 in main () at hello.c:12
(gdb)
您可能会在 GDB 手册中找到一些有关堆栈探索的其他命令:检查堆栈。
其它你可能感兴趣的问题