gdb 可以使用
display
每一步打印一个表达式。我想使用 gdb 的 printf
来格式化表达式。我怎样才能告诉gdb每一步运行一个printf
,类似于显示?
您可以使用
hook-next
。 文档。
示例:
// t.c
int main()
{
int x = 2;
x++;
x += 3;
x += 5;
return x - 11;
}
gcc -g t.c && gdb -q ./a.out
(gdb) start
(gdb) define hook-next
Type commands for definition of "hook-next".
End with a line saying just "end".
>printf "%08d\n", x
>end
(gdb) next
00032767 # <<-- x hasn't been initialized yet.
4 x++;
(gdb) next
00000002
5 x += 3;
(gdb)
00000003
6 x += 5;
(gdb)
00000006
7 return x - 11;
(gdb)
00000011
8 }
(gdb) q