linux中gdb工具的入門使用教程

發(fā)布時間:2024-03-24
gdb是linux下非常好用的一個調試工具,雖然它是命令行模式的調試工具,但是它的功能強大到你無法想象,這里簡單介紹下gdb的使用方法,需要的朋友們下面來一起看看詳細的介紹吧。
斷點
在代碼的指定位置中斷,使程序在此中斷。
break <function> 在進入指定函數(shù)時停住break <linenum> 在指定行號停住。break +/-offset 在當前行號的前面或后面的offset行停住。offiset為自然數(shù)。break filename:linenum 在源文件filename的linenum行處停住。break … if <condition> …可以是上述的參數(shù),condition表示條件,在條件成立時停住。比如在循環(huán)境體中,可以設置break if i=100,表示當i為100時停住程序。案例:
(gdb) break sc_smartcontract_handler.cpp:45 breakpoint 4 at 0x424d42: file sc_smartcontract_handler.cpp, line 45.對斷點的相關操作
delete 刪除所有斷點delete breakpoint [n] 刪除某個斷點disable breakpoint [n] 禁用某個斷點enable breakpoint [n] 使能某個斷點info breakpoints [n] 查看當前斷點信息觀察點
捕捉點用來補捉程序運行時的一些事件。如:載入共享庫(動態(tài)鏈接庫)、c++的異常等。通常也是用來定位bug。
捕捉點的命令格式是:catch <event>,event可以是下面的內容
watch <expr> 變量發(fā)生變化時中斷rwatch <expr> 變量被讀時中斷awatch <expr> 變量值被讀或被寫時中斷可以通過info watchpoints [n]命令查看當前觀察點信息
查看變量
最常用的查看變量的方法是
 (gdb) print {變量名}
(gdb) print argc $1 = 1如果打印數(shù)組,由于默認的設置,可能打印的數(shù)組尾部部分沒有顯示,可以通過如下的命令設置打印數(shù)組的最大長度
(gdb) set print elements 300
調試中查看代碼
list function 如list main:顯示main函數(shù)附近的代碼list file:function 如list main.c:main:顯示main.c中的main函數(shù)附近的代碼list n1,n2 如list 10,20,顯示當前文件的10到20行雖然list已經(jīng)很方便了, 但還是不盡人意. 如果能夠在運行的同時顯示代碼就好了, 答案是肯定的.
使用如下命令啟動gdb: gdb -tui 項目名 或者在啟動gdb后, 輸入命令focus,如圖:
恢復程序運行和單步調試
在gdb中,和調試步進相關的命令主要有如下幾條:
continue 繼續(xù)運行程序直到下一個斷點(類似于vs里的f5)next 逐過程步進,不會進入子函數(shù)(類似vs里的f10)setp 逐語句步進,會進入子函數(shù)(類似vs里的f11)until 運行至當前語句塊結束finish 運行至函數(shù)結束并跳出,并打印函數(shù)的返回值(類似vs的shift+f11)在特定線程中中斷
你可以定義你的斷點是否在所有的線程上,或是在某個特定的線程。gdb很容易幫你完成這一工作。
break <linespec> thread <threadno>break <linespec> thread <threadno> if …linespec指定了斷點設置在的源程序的行號。threadno指定了線程的id,注意,這個id是gdb分配的,你可以通過”info threads”命令來查看正在運行程序中的線程信息。如果你不指定thread <threadno>則表示你的斷點設在所有線程上面。你還可以為某線程指定斷點條件。如:
(gdb) break frik.c:13 thread 28 if bartab > lim當你的程序被gdb停住時,所有的運行線程都會被停住。這方便你你查看運行程序的總體情況。而在你恢復程序運行時,所有的線程也會被恢復運行。那怕是主進程在被單步調試時。
上一個:實力推送:便攜式氣象五參數(shù)檢測儀-一款物超所值的手持氣象站(技術新聞)
下一個:YSI550A溶氧儀的標定

酯類 黃酮類 皂苷類提取 非極性XND-7大孔吸附樹脂特點
眼鏡式眼動儀能被應用于許多領域中
柔性有機防火堵料的選購標準
大興安嶺管道保溫施工工藝流程
盆栽花卉的主要生產(chǎn)國及特點
什么叫高頻淬火
RTT20R160FTE現(xiàn)貨庫存,最新價格
你確定的可靠性關鍵產(chǎn)品正確嗎?
2013年高低溫沖擊試驗箱技術優(yōu)勢提前分享
華為暢享20se配置參數(shù)詳情(華為暢享20se手機性能怎么樣)
十八禁 网站在线观看免费视频_2020av天堂网_一 级 黄 色 片免费网站_绝顶高潮合集Videos