我在GDB提示符上遇到一个问题,需要在函数中打印多个变量(例如25个)。
是否有一种方便的方法来代替手动打印每个变量?
我能否有一个脚本或更简单的方法来完成我的工作?
printf
命令打印多个值。printf "%d,%d\n", a, b
为了在将来使用它,您可以定义一个 gdb-function 或使用 gdb-history 功能。
要定义一个 gdb-function,请创建/修改文件 $HOME/.gdbinit
,并使用以下内容:
define print_all
printf "%d,%d\n", a, b
end
document print_all
Prints all my variables.
end
然后您可以将print_all
用作命令。
对于历史记录技巧,请创建/修改文件$HOME/.gdbinit
并使用以下内容:
set history filename ~/.gdb_history
set history save
你可以使用ctrl+r
的方式获取,就像在bash中一样。实际的gdb-history答案在这里。
-x
选项来指定命令文件,如果它没有从$HOME/.gdbinit
中选择。例如:gdb -x /path/.gdbinit /path/binary
。 - VoidPointer