2013-07-05 85 views
6

我遇到了在GDB Prompt上的函数中打印多个变量(say 25)的问题。在GDB中打印多个变量?

是否有任何方便的方法来做到这一点,而不是手动打印每个变量?

我可以有一个脚本或简单的方法可以完成我的工作吗?

+0

的可能的复制[GDB - 打印多变量用一个命令(http://stackoverflow.com/questions/1882857/gdb-print-multiple-variables-with-one-command) –

回答

12

您可以在gdb中使用printf命令打印多个值。

printf "%d,%d\n", a, b 

要在将来使用它,您可以定义一个gdb函数或使用gdb-history功能。

  1. 要定义一个GDB-功能,创建/修改文件$HOME/.gdbinit具有以下conten,

    define print_all 
        printf "%d,%d\n", a, b 
    end 
    document print_all 
        Prints all my variables. 
    end 
    

    然后你可以使用print_all为命令。

  2. 对于历史的把戏,创建/修改文件$HOME/.gdbinit,内容如下:

    set history filename ~/.gdb_history 
    set history save 
    

    ,并使用ctrl+r同样喜欢在bash获得。 实际gdb-history答案是here

+0

.gdbinit是对所有的Linux发行版都通用? – Jeyaram

+0

@Jeyaram,我对于不同的linux发行版没有经验,但是如果没有从'$ HOME/.gdbinit'中挑选,你可以使用'-x'选项来指定命令文件。例如:'gdb -x /path/.gdbinit/path/binary' – VoidPointer

+0

它似乎无法打印注册表。 –