GDB中一条命令打印多个变量

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

我想执行非常简单的命令

print var1, var2, var3, var4 

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

我不想使用显示屏,因为它会扰乱我的视图。

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

p var1  
p var2  
p var3  
p var4  
gdb
5个回答
71
投票

你可以简单地这样做

print {var1,var2,var3,var4}

这样就可以了。


52
投票

使用 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 表示空终止字符串等)。


31
投票

使用宏:

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

(gdb) define prm 

键入命令来定义

prm
。 以一行文字结尾:
end

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

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

2
投票

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


0
投票

将 printf 与 %V 格式说明符一起使用。

printf "%V\n%V\n%V\n", var1, var2, var3
© www.soinside.com 2019 - 2024. All rights reserved.