gdb 使用 printf 显示

问题描述 投票:0回答:1

gdb 可以使用

display
每一步打印一个表达式。我想使用 gdb 的
printf
来格式化表达式。我怎样才能告诉gdb每一步运行一个
printf
,类似于显示?

debugging gdb
1个回答
0
投票

您可以使用

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
© www.soinside.com 2019 - 2024. All rights reserved.