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...