查看文件
list命令可以查看源碼。
啟動GDB后第一個list命令會定位到main函數(shù)惰爬,以main函數(shù)為中心顯示上下共10行代碼喊暖。下一個list命令查看下面的10行∷呵疲可以重復(fù)執(zhí)行這個命令陵叽,直到到達文件尾。
命令 | 含義 |
---|---|
list | 查看前10行代碼 |
list n | 命令顯示以第n行為中心的上下共10行代碼 |
list n, | 顯示以第n行開頭的10行代碼 |
list ,n | 顯示以第n行結(jié)尾的10行代碼 |
list m,n | 顯示以第m行開頭丛版,第n行結(jié)尾的代碼 |
list function | 以函數(shù)function為中心的上下10行代碼巩掺,f可以是其它文件里定義的函數(shù) |
list file:line | 顯示文件file里的第line行代碼 |
list file:function | 顯示文件file里的函數(shù)function的代碼 |
運行調(diào)試
命令 | 含義 |
---|---|
gdb filename | 啟動gdb,調(diào)試可執(zhí)行文件filename |
run | 命令啟動程序 |
run arg1 arg2 ... | 可以給程序傳入?yún)?shù) |
step | 單步執(zhí)行页畦,遇到子函數(shù)就進入并且繼續(xù)單步執(zhí)行 |
next | 在函數(shù)內(nèi)遇到子函數(shù)時不會進入子函數(shù)內(nèi)單步執(zhí)行 |
continue | 運行到下一個斷點 |
斷點
命令 | 含義 |
---|---|
info breakpoints | 查看目前設(shè)置的斷點胖替,設(shè)置斷點時,每個斷點被賦予一個從1開始的編號,使用這個編號來標(biāo)識斷點 |
disable n | 禁掉編號為n的斷點 |
enable n | 使能編號為n的斷點 |
break n | 在當(dāng)前文件的第n行設(shè)置斷點 |
break function | 在函數(shù)上設(shè)置斷點 |
break file:function | 在文件里的函數(shù)上加斷點 |
不帶參數(shù)的break在當(dāng)前行加上斷點刊殉。
break可以選擇性地中斷殉摔,使用break n if ...的形式。比如 b 13 if i > 5
clear可以刪除斷點记焊,是break的逆過程逸月。
delete也可以刪除斷點,但是它的參數(shù)是斷點的編號遍膜,比如delete 5刪除第5個斷點碗硬。
不帶編號的delete刪除所有的斷點。
觀察變量
命令 | 含義 |
---|---|
ptype var | 查看變量var的類型瓢颅,簡寫為pt |
print var | 查看變量var的值恩尾,簡寫成p |
可以設(shè)置打印變量的格式,此處不介紹挽懦。
多線程:
(22條消息) 【GDB】GDB多線程查看線程堆棧|GDB 調(diào)試多線程和多進程總結(jié)_bdview的博客-CSDN博客