GDB的命令很多,本文不會全部介紹,僅會介紹一些最常用的。在介紹之前,先介紹GDB中的一個非常有用的功能:補齊功能。它就如同Linux下SHELL中的命令補齊一樣。當你輸入一個命令的前幾個字元,然後輸入TAB鍵,如果沒有其它命令的前幾個字元與此相同,SHELL將補齊此命令。如果有其它命令的前幾個字元與此相同,你會聽到一聲警告聲,再輸入TAB鍵,SHELL將所有前幾個字元與此相同的命令全部列出。而GDB中的補齊功能不僅能補齊GDB命令,而且能補齊參數。
本文將先介紹常用的命令,然後結合一個具體的例子來示範如何實際使用這些命令。下面的所有命令除了第一條啟動GDB命令是在SHELL下輸入的,其餘都是GDB內的命令。大部分GDB內的命令都可以僅輸入前幾個字元,只要不與其它指令衝突。如quit可以簡寫為q,因為以q打頭的命令只有quit。List可以簡寫為l,等等。
1.啟動GDB
你可以輸入GDB來啟動GDB程式。GDB程式有許多參數,在此沒有必要詳細介紹,但一個最為常用的還是要介紹的:如果你已經編譯好一個程式,我們假設檔案名稱為hello,你想用GDB調試它,可以輸入gdb hello來啟動GDB並載入你的程式。如果你僅僅啟動了GDB,你必須在啟動後,在GDB中再載入你的程式。
2.載入程式 === file
在GDB內,載入程式很簡單,使用file命令。如file hello。當然,程式的路徑名要正確。
退出GDB === quit
在GDB的命令方式下,輸入quit,你就可以退出GDB。你也可以輸入'C-d'來退出GDB。
3.運行程式 === run
當你在GDB中已將要調試的程式載入後,你可以用run命令來執行。如果你的程式需要參數,你可以在run指令後接著輸入參數,就象你在SHELL下執行一個需要參數的命令一樣。
4.查看程式資訊 === info
info指令用來查看程式的資訊,當你用help info查看協助的話,info指令的參數足足佔了兩個螢幕,它的參數非常多,但大部分不常用。我用info指令最多的是用它來查看斷點資訊。
4.1 查看斷點資訊
info br
br是斷點break的縮寫,記得GDB的補齊功能吧。用這條指令,你可以得到你所設定的所有斷點的詳細資料。包括斷點號,類型,狀態,記憶體位址,斷點在來源程式中的位置等。
4.2 查看當前來源程式
info source
4.3 查看堆棧資訊
info stack
用這條指令你可以看清楚程式的調用層次關係。
4.4 查看當前的參數
info args
5.列出源一段來源程式 === list
5.1 列出某個函數
list FUNCTION