2013-07-05 114 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

它似乎無法打印註冊表。 –