GDB調試分爲兩種模式,一種是debug版本,一種是release版本。一般GDB主要調試的是C/C++的程序。
(1)debug版本:debug版本爲可調式版本,生成的可執行文件中包含調試需要的信息。
(2)release版本:release版本爲發行版本,是提供給用戶使用的版本。
基礎調試命令(單進程/單線程)
調試C/C++的程序,首先在編譯時, 我們必須要把調試信息加到可執行文件
中。 使用編譯器( cc/gcc/g++) 的 -g 參數可以做到這一點。
eg:> cc -g filename.c -o filename
> g++ -g filename.cpp -o filename
命令 | 解釋說明 |
gdb filename | 啓動gdb,調試filename文件 |
l | 顯示main函數所在文件的源代碼 |
b/break |
設置斷點 |
info break | 顯示斷點信息 |
r(run) | 運行程序 |
n(next) | 單步執行 |
c(continue) | 繼續執行程序,直到遇到斷點 |
p(printf) i | 打印 i的值(i 可以是任意變量) |
bt | 顯示函數調用棧 |
s | 進入將要被調用的函數中執行 |
finish | 退出函數 |
q | 退出調試 |
delete 斷點號 | 刪除斷點 |
disable 斷點號 | 將斷點設置爲無效的 |
enable 斷點號 | 將斷點設置爲有效的 |