帮助gdb的stepi命令

时间:2010-01-13 07:06:40

标签: gdb command

我需要使用gdb跟踪程序的所有指令。 每次执行一条指令后,我都希望gdb调用一个指定的函数。

这是一项可行的工作吗?怎么做到这一点?

我搜索了互联网,发现gdb中的“stepi arg”命令可以执行arg指令。 但如何查找指令总数? 在每条指令之后,如何让gdb自动调用我的函数?

2 个答案:

答案 0 :(得分:3)

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:它应该包含您正在寻找的信息。

P.S。这不是一个讨论论坛。请不要将问题附加为“答案”。而是编辑您的原始问题以澄清它,或使用评论。

答案 1 :(得分:1)

由于高度或分页参数,GDB始终在执行期间打印“---要继续输入,要求q退出---”。

为了避免或禁用此功能,您必须在gdb提示符或.gdbinit文件中提供以下命令

设置高度0或设置分页