gdb附加除錯技巧和常用命令

2021-10-23 19:50:43 字數 938 閱讀 4536

啟動時進行除錯:gdb 程序名

gdb後台服務除錯技巧:

有的程式執行後台進行除錯需要sudo許可權

sudo gdb

輸入密碼後

shell comand: 可在gdb下使用 shell命令,例如 shell ps -ef | grep 程序名 (可檢視到程序id)

attach pid:(使用attach 附加到程序中進行除錯 類似vs的除錯->附加到程序)

b 設定斷點(支援行號,檔名:行號,函式名,檔名:函式名 等)

display 變數: 檢視變數的值 類似p

watch 變數: 執行中看到變數的變化

info b: 檢視設定斷點

s: 單步執行

n:執行一條語句

layout src: 除錯時能看到源**執行語句視窗

delete 編號: 刪除斷點

bt: 檢視當前的堆疊資訊

frame 編號:切換

多執行緒除錯設定:

檢視執行緒:info threads

thread id 切換當前除錯的執行緒為指定id的執行緒

多執行緒除錯切換:set scheduler-locking off|on|step

檢視幫助:help set /thread

遠端附加除錯:gdbserver :port (埠號) --attach pid(程序pid)

clion中 選擇遠端除錯 然後 輸入tcp:ip:port 即可使用clion除錯linux程式

gdb --tui不支援需要重新加入編譯選項編譯 沒安裝ncurses報錯(sudo apt-get install libncurses5-dev)

./configure --enable-tui=yes

make

sudo make install

gdb除錯常用命令

呼叫gdb編譯需要在cc後面加 g引數再加 o root redhat home gdb 除錯檔案 啟動gdb gdb l 字母l 從第一行開始列出原始碼 gdb break n 在第n行處設定斷點 gdb break func 在函式func 的入口處設定斷點 gdb info break 檢視斷...

gdb除錯常用命令

gdb list 1 從第一行開始列出原始碼 一次列出10行,如果要從11行繼續列出直接輸入list或l 命令簡寫 gdb l 搜尋 func name所在位置。gdb start 開始執行程式 gdb next 簡寫n 單條執行指令 直接回車重複執行上一條命令 n gdb step 簡寫s 執行下...

gdb除錯常用命令

在編譯時要加上 g選項,生成的可執行檔案才能用gdb進行原始碼級除錯。使用gdb執行生成的檔案。help 可以檢視命令類別 list 命令從第一行開始列出源 一次只會顯示10行,回車可繼續列出下面的 quit 退出 start 開始執行 n next 控制語句一條一條執行 s step 單步執行 b...