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

时间:2009-12-10 18:02:29

标签: gdb

我想执行非常简单的命令

print var1, var2, var3, var4 

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

我不想使用显示器,因为它使我的观点变得混乱。

我该怎么做?现在我所能做的就是:

p var1  
p var2  
p var3  
p var4  

4 个答案:

答案 0 :(得分:40)

你可以简单地这样做

print {var1,var2,var3,var4}

这将完成这项工作。

答案 1 :(得分:34)

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

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

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

答案 2 :(得分:15)

使用宏:

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

(gdb) define prm 

键入用于定义prm的命令。 最后一行只说end

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

(gdb) prm
$5 = 0
$6 = 10
$7 = -1

答案 3 :(得分:2)

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