在GDB中使用一个命令打印多个变量

Rao*_*lla 44 gdb

我想执行非常简单的命令

print var1, var2, var3, var4 
Run Code Online (Sandbox Code Playgroud)

在gdb中不时检查变量的值.

我不想使用显示器,因为它弄乱了我的视线.

我怎样才能做到这一点?现在我所能做的就是:

p var1  
p var2  
p var3  
p var4  
Run Code Online (Sandbox Code Playgroud)

vik*_*smk 43

你可以这么做

print {var1,var2,var3,var4}
Run Code Online (Sandbox Code Playgroud)

这将完成这项工作.

  • 我遇到错误`数组元素必须都是相同的大小`. (6认同)
  • 这既快速又简单,但前提是它们都是相同的类型,或者您可以将它们有效地转换为相同的类型。 (3认同)

TGV*_*TGV 36

使用printf命令.这有点麻烦,但它可以很好地控制格式.从命令行:

(gdb) help printf
printf "printf format string", arg1, arg2, arg3, ..., argn
This is useful for formatted output in user-defined commands.
Run Code Online (Sandbox Code Playgroud)

格式字符串类似于C(正常大小的%d为%,空终止字符串的%s等).


小智 17

使用宏:

例如,继续下一个断点并打印

(gdb) define prm 
Run Code Online (Sandbox Code Playgroud)

键入用于定义的命令prm.最后一句话说end.

>continue
>print var1
>print var2
>print var3
>end

(gdb) prm
$5 = 0
$6 = 10
$7 = -1
Run Code Online (Sandbox Code Playgroud)

  • 这永远改变了我使用 gdb 的方式 (4认同)

Edw*_*per 2

可能有一个更简单的解决方案,但您可以使用 GDB 宏组合一些东西:http://www.ibm.com/developerworks/aix/library/au-gdb.html