我需要使用 gdb 跟踪程序的所有指令。 每次执行指令后,我希望 gdb 调用指定的函数。
这是一项可能的工作吗?如何实现这一目标?
我搜索了互联网,发现gdb中的“stepi arg”命令可以步进arg指令。 但如何找到指令总数呢? 在每条指令之后,如何让 gdb 自动调用我的函数?
最佳答案
cat t.c
int main() { int x=1; int y=2; int z=x+y; printf("%d",z); return 0; }
gcc t.c
gdb -q ./a.out
break main
run
(no debugging symbols found)...
Breakpoint 1, 0x0000000000400488 in main ()
set logging on
while 1
>stepi
>info registers
end
quit
现在检查 gdb.log
:它应该包含您正在查找的信息。
附注这不是一个讨论论坛。请不要将问题附加为“答案”。相反,编辑您的原始问题来澄清它,或使用评论。
关于gdb - gdb 的 stepi 命令帮助,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2055000/