gdb除錯 簡單命令 備忘

2021-06-02 01:06:47 字數 928 閱讀 4895

www.youku.com linux下c語言程式設計gdb除錯,指標函式呼叫是的引數傳遞

1. 編譯時 要加 -g

gcc [-option] test.c

option:

g    為以後gdb除錯準備

wall    輸出所有警告資訊

2. gdb 除錯

gdb    ./a.out

(gdb) help

(gdb) help breakpoint

(gdb) list(顯示最近10行**)

(gdb) 繼續list(後面10行)

(gdb) list function(顯示某個函式原始碼)

(gdb) b funca(在函式funca處設定斷點)

(gdb) b getnextword.c:11(在getnextword函式第11行設定斷點)

(gdb) r(run) (讓程式執行)

(gdb) n(next)  (應該是單步的意思,需確認)

(gdb) print sa(某函式中乙個指標變數)

***************************************

*     char sa = "hello, funca";

* **************************************

$1 = "hello, funca"

(gdb) print $sa

$2 = (char (*)[13]) 0xbf85c797(記憶體位址)

(gdb)

(gdb) print sa+7

$3 = oxbf85c79e "funca"

(gdb) step

(gdb)

命令列 按住alt,再按句號,根據句號按的次數,得到之前的命令引數

getnextword(char *s)

gdb除錯備忘

指令 r 執行 根據 行數設定斷點是最常見的一種方式,在debug程式執行前就可以進行斷點的配置。如 gdb b src main.cpp 127當程式執行到main.cpp檔案的第127行時就會出發斷點。顧名思義,這種斷點是當滿足一定條件時才會觸發,比較適合進行異常排查。設定方式 gdb brea...

gdb除錯技巧備忘

為了能讓程式更直觀的被除錯,在編譯時應該新增一些選項 gdb a.outgdb a.out set args a b c any argument you need b main rungdb bin name core name大致按如下步驟 ps axu grep bin name,獲取程序id...

簡單GDB除錯

生成可用gdb除錯的可執行程式 g 會保留原始檔中的函式名和變數名 啟動gdbgdb 可執行程式名 set args 給程式傳參檢視程式中的源 當前檔案 l list l 行號 l 函式名 非當前檔案 l 檔名 行號 l 檔名 函式名 檢視當前可顯示的行數 show listsize 預設是顯示10...