Linux—gdb除錯簡單實現

풍殤い^κ發表於2020-12-24

1.GDB簡述

GDB是GNU開源組織釋出的一個強大的UNIX下的程式除錯工具,GDB主要可幫助工程師完成下面4個方面的功能:

(1)啟動程式,可以按照工程師自定義的要求隨心所欲的執行程式。
(2)讓被除錯的程式在工程師指定的斷點處停住,斷點可以是條件表示式。
 (3)當程式被停住時,可以檢查此時程式中所發生的事,並追索上文。
 (4)動態地改變程式的執行環境。

不管是除錯Linux核心空間的驅動還是除錯使用者空間的應用程式,掌握gdb的用法都是必須。

2.安裝gdb增強工具

gdb工具時系統自帶的,但是為了更方便使用,建議 從git上面下載一些外掛
聯網Linux系統下安裝git:sudo apt-get install git

git clone https://github.com/gatieme/GdbPlugins.git ~/GdbPlugins 

克隆完之後,會在你當前目錄下面有GdbPlugins 這個檔案
當你想要用某一個GdbPlugins下層目錄中某一外掛的時候,只要輸入對應命令就行

這裡我們主要使用gef 我們執行

echo "source ~/GdbPlugins/gef/gef.py" > ~/.gdbinit 

3.簡單使用

(1)編譯

編譯後面加**-g**
在這裡插入圖片描述

(2)啟動GDB

gdb + 生成檔名

如 gdb demo

如:gdb demo![在這裡插入圖片描述](https://img-blog.csdnimg.cn/20201224115839171.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0Fhcm9ubHh4,size_16,color_FFFFFF,t_70

(3)下斷點

b + 行數或函式名
如 b main (在main函式下處斷點)或者 b 6(在第六行下斷點)
使用 info breakpoints 檢視斷點

在這裡插入圖片描述

(4)輸入:r

開始執行

在這裡插入圖片描述
在這裡插入圖片描述

(5)向下執行

" n " :執行一條語句,碰到函式會直接執行函式
" s “:執行下一條語句,碰到函式會進入到函式中
" p + 變數名”:檢視執行中程式的變數

結果結果會在上方展示

(6)退出

輸入q退出除錯

在這裡插入圖片描述
至此

學識淺薄,簡單介紹一下gdb工具
希望可以幫到您。。。

——師從上官可程式設計,陳立臣

相關文章