若有一檔案為test.c,在儲存退出後首先使用gcc對test.c進行編譯,注意一定要加上選項」-g」這樣編譯出的可執行**中才包含除錯資訊,否則之後gdb無法載入該可執行檔案。
# gcc –g test.c –o test
注意:gdb除錯的是可執行檔案,而不是」.c」的源**。所以必須先通過gcc編譯生成可執行檔案才可以用gdb除錯。
1>檢視檔案:在gdb中鍵入」l」即可檢視所載入的檔案。
2>設定斷點:b 「行號」 如b 10 也即在第十行設定了乙個斷點。
3>檢視斷點:info b.
4>執行**:鍵入「r」(run)即可。也可在其後面加入行表示從哪一行開始執行。
5>檢視變數的值:p 「變數名」 如檢視變數n的值:p n;
6>單步執行:它可以使用二個命令「n」(next)或「s」(step),它們的區別在於若在函式呼叫的時候「s」會進入此函式,而「n」不會進入此函式。
7>恢復程式執行:在檢視完變數及堆疊情況後,可用」c」(continue)恢復程式的正常執行。
由於gdb的命令很多,我們可以通過檢視help進行查詢。
gdb工作環境相關命令
命令格式
含義
set args執行時的引數
指定執行時的引數 如:set args 2
share args
檢視設定好的執行引數
path dir
設定程式執行路徑
show paths
檢視程式執行路徑
set environment ar[=value]
設定環境變數
show environment[var]
檢視環境變數。
cd dir
進入到dir目錄,相當於shell中的cd命令。
pwd
檢視當前的工作目錄。
shell command
執行shell的command命令
gdb設定斷點與恢復相關命令
命令格式
含義
info b
檢視所設斷點
break 行號或函式名 《條件表示式》
設定斷點
tbreak 行號或函式名 《條件表示式》
設定臨時斷點,到達後自動被刪除。
delete [斷點號]
刪除指定斷點,其斷點號為「info b」中的第一欄,若預設斷點號則刪除所有的斷點。
disable [斷點號]
停止指定斷點,使用「info b」仍能看到此斷點,同delete一樣,預設斷點號將停止所有的斷點。
enable [斷點號]
啟用指定斷點,即啟用被disable停止的斷點。
condition [斷點號] 《條件表示式》
修改對應斷點條件。
ignore [斷點號]
在程式執行中忽略對應斷點的num次
step
單步恢復程式執行,且進入函式呼叫
next
單步恢復程式執行但不進入函式呼叫
finish
執行程式,直到當前函式完成返回。
c
繼續執行函式,直到函式結束,或遇到新的斷點。
在設定斷點還有另二種斷點設定方法:
1>函式斷點。如:b sum (sum是乙個函式)
2>條件斷點。如:b 「行數」或函式名 if 表示式 如:b 8 if i==10;
gdb原始碼檢視相關命令
命令格式
含義
list 《行號》|《函式名》
檢視指定位置**。
file [檔名]
載入指定檔案。
forward-search 正規表示式
源**前向搜尋。
reverse-search 正規表示式
源**後向搜尋。
dir dir
停止路徑名。
show directries
顯示了定義了的原始檔搜尋路徑。
info line
顯示載入到gdb記憶體中的**。
gdb檢視執行資料相關命令
print 表示式|變數名
檢視程式執行時對應表示式和變數的值
x檢視記憶體變數內容。其中n為整數表示顯示記憶體的長度,f表示顯示的格式,u表示從當前位址往後請求顯示的位元組數
display 表示式
設定單步執行或其他情況中,自動顯示的對應表示式的內容
gdb的使用切記
1> 在gcc編譯選項中一定要加入」-g」.
2> 只有**處於「執行」或「暫停」狀態時才能檢視變數的值。
3> 設定斷點後程式在指定行之前停止。
CSDN markdown編輯器使用手冊
本markdown編輯器使用stackedit修改而來,用它寫部落格,將會帶來全新的體驗哦 markdown 是一種輕量級標記語言,它允許人們使用易讀易寫的純文字格式編寫文件,然後轉換成格式豐富的html頁面。維基百科 使用簡單的符號標識不同的標題,將某些文字標記為粗體或者斜體,建立乙個鏈結等,詳細...
CSDN markdown編輯器使用手冊
建立乙個自定義列表 如何建立乙個註腳 注釋也是必不可少的 katex數學公式 新的甘特圖功能,豐富你的文章 uml 圖表 flowchart流程圖 匯出與匯入 你好!這是你第一次使用markdown編輯器所展示的歡迎頁。如果你想學習如何使用markdown編輯器,可以仔細閱讀這篇文章,了解一下mar...
CSDN markdown編輯器 使用手冊
建立乙個自定義列表 如何建立乙個註腳 注釋也是必不可少的 katex數學公式 新的甘特圖功能,豐富你的文章 uml 圖表 flowchart流程圖 匯出與匯入 你好!這是你第一次使用markdown編輯器所展示的歡迎頁。如果你想學習如何使用markdown編輯器,可以仔細閱讀這篇文章,了解一下mar...