基本操作
生成包含調試信息的可執行文件
gcc -g test.c -o test
進入gdb
調試
gdb test
查看所載入的文件
(gdb) l
設置斷點
在程序第六行設置斷點(breakpoint
)
(gdb) b 6
查看斷點
(gdb) info b
運行程序
(gdb) r
查看棧信息
(gdb) bt
查看變量值
variable
爲變量名稱
(gdb) p variable
單步運行
單步運行有兩種,”n
“(next
)和”s
"(step
),“s
“可以調試程序直接進入調用函數,而”n
"不行。
(gdb) n
or
(gdb) s
恢復程序運行
(gdb) c
工作環境相關命令
gdb
工作環境相關命令
命令格式 | 含義 |
---|---|
set args 運行時的參數 |
指定運行時參數,如 set args 2 |
show args | 查看設置好的運行參數 |
Path dir | 設定程序的運行路徑 |
show paths | 查看程序的運行路徑 |
set environment var [=value] | 設置環境變量 |
show environment [var] | 查看環境變量 |
cd dir | 進入dir 目錄 |
Pwd | 顯示當前目錄 |
shell command | 運行shell 的command 命令 |
設置斷點與恢復命令
gdb
設置斷點與恢複相關命令
命令格式 | 含義 |
---|---|
info b | 查看所有斷點 |
break[文件名:]行號或函數名<條件表達式> | 設置斷點 |
tbreak[文件名:]行號或函數名<條件表達式> | 設置臨時斷點,到達後自動刪除 |
delete[斷點號] | 刪除指定斷點,其斷點號爲"info b "中的第一欄。若缺省斷點號默認刪除所有斷點。 |
disable[斷點號] | 停止指定斷點,可以查看,功能與delete 類似。 |
enable[斷點號] | 激活斷點。 |
condition[斷點號]<條件表達式> | 修改對應斷點的條件 |
ignore[斷點號] | 忽略對應斷點num 次 |
Step | 單步恢復程序運行,且進入函數調用 |
Next | 單步恢復程序運行,但不進入函數調用 |
Finish | 運行程序,直到當前函數完成返回 |
C | 繼續執行函數,直到函數結束或遇到新的斷點 |
gdb中源碼查看相關命令
gdb
中源碼查看相關命令
命 令 格 式 | 含義 |
---|---|
list <行號> | <函數名> |
查看指定位置代碼 |
file [文件名] | 加載指定文件 |
forward-search 正則表達式 | 源代碼的前向搜索 |
reverse-search 正則表達式 | 源代碼的後向搜索 |
dir DIR | 將路徑 DIR 添加到源文件搜索的路徑的開頭 |
show directories | 顯示源文件的當前搜索路徑 |
info line | 顯示加載到 gdb 內存中的代碼 |
gdb中查看運行數據相關命令
gdb
查看運行數據相關命令
命 令 格 式 | 含義 |
---|---|
print 表達式 | 變量 |
x <n/f/u> | 查看內存變量內容。其中 n 爲整數表示顯示內存的長度,f 表示顯示的格式,u 表示從當前地址往後請求顯示的字節數 |
display 表達式 | 設定在單步運行或其他情況中,自動顯示的對應表達式的內容 |
backtrace | 查看當前棧的情況,即可以查到哪些被調用的函數尚未返回 |
gdb 中修改運行參數相關命令
文章目錄
參考:《嵌入式Linux應用程序開發標準教程》作者:華清遠見