在GDB中打印多个变量?

6

我在GDB提示符上遇到一个问题,需要在函数中打印多个变量(例如25个)。

是否有一种方便的方法来代替手动打印每个变量?

我能否有一个脚本或更简单的方法来完成我的工作?


可能是gdb-使用一个命令打印多个变量的重复问题。 - phuclv
1个回答

14
你可以使用gdb中的printf命令打印多个值。
printf "%d,%d\n", a, b

为了在将来使用它,您可以定义一个 gdb-function 或使用 gdb-history 功能。

  1. 要定义一个 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答案在这里


    @Jeyaram,我没有在不同的Linux发行版上的经验,但是你可以使用-x选项来指定命令文件,如果它没有从$HOME/.gdbinit中选择。例如:gdb -x /path/.gdbinit /path/binary - VoidPointer
    似乎无法打印寄存器。 - Eric

    网页内容由stack overflow 提供, 点击上面的
    可以查看英文原文,
    原文链接