溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Linux系統(tǒng)下如何使用GDB調(diào)試程序

發(fā)布時(shí)間:2022-01-24 14:23:00 來(lái)源:億速云 閱讀:217 作者:清風(fēng) 欄目:開(kāi)發(fā)技術(shù)

本文將為大家詳細(xì)介紹“Linux系統(tǒng)下如何使用GDB調(diào)試程序”,內(nèi)容步驟清晰詳細(xì),細(xì)節(jié)處理妥當(dāng),而小編每天都會(huì)更新不同的知識(shí)點(diǎn),希望這篇“Linux系統(tǒng)下如何使用GDB調(diào)試程序”能夠給你意想不到的收獲,請(qǐng)大家跟著小編的思路慢慢深入,具體內(nèi)容如下,一起去收獲新知識(shí)吧。

gdb是GNU開(kāi)源組織發(fā)布的一個(gè)強(qiáng)大的Linux下的程序調(diào)試工具,GDB主要來(lái)調(diào)試C/C++語(yǔ)言寫的程序,當(dāng)然也就可以調(diào)試其他語(yǔ)言程序。

問(wèn)題描述:

    Linux下使用GDB調(diào)試程序

問(wèn)題解決:

    (1)生成調(diào)試文件

Linux系統(tǒng)下如何使用GDB調(diào)試程序

注:

   使用命令  gdb IOStream.c  -o IOStream -g 最后一個(gè)參數(shù)是生成gdb調(diào)試文件的參數(shù)信息(必不可少,否則生成的是可執(zhí)行的文件)。

   上述出現(xiàn)如上的警告信息,解決的辦法是在IOStream.c文件中引用  #include

   (2)載入生成的gbd文件IOStream

Linux系統(tǒng)下如何使用GDB調(diào)試程序

注:  

   在Console中輸入gdb啟動(dòng)gdb調(diào)試

Linux系統(tǒng)下如何使用GDB調(diào)試程序

注:

    使用file IOStream  命令載入gdb文件

Linux系統(tǒng)下如何使用GDB調(diào)試程序

注:

set args 參數(shù)名 設(shè)置運(yùn)行文件的參數(shù)值  

   show args 顯示參數(shù)信息

   (3)源程序信息預(yù)覽

Linux系統(tǒng)下如何使用GDB調(diào)試程序

注:

     使用命令 info souce 可以查看源程序信息。

   (4)源代碼預(yù)覽

Linux系統(tǒng)下如何使用GDB調(diào)試程序  ·    

注:

list     顯示程序第linenum行的周圍的源程序。  

 list     顯示函數(shù)名為function的函數(shù)的源程序。    

 list      顯示當(dāng)前行后面的源程序。  

 list –     顯示當(dāng)前行前面的源程序。

 list +     顯示當(dāng)前行之后的源程序

Linux系統(tǒng)下如何使用GDB調(diào)試程序

注:

    使用list 顯示指定行前后的部分代碼

Linux系統(tǒng)下如何使用GDB調(diào)試程序

注:

   gdb調(diào)試時(shí),屏幕信息太多,導(dǎo)致難以看清楚,這時(shí)可以使用 shell  clear 命令,清除當(dāng)前屏幕信息。

  (5)設(shè)置斷點(diǎn)

Linux系統(tǒng)下如何使用GDB調(diào)試程序

注:

   使用命令  b 或者 b 可以在指定行或者指定函數(shù)名稱處設(shè)置斷點(diǎn)。

Linux系統(tǒng)下如何使用GDB調(diào)試程序

注:

   使用info br 或者 info breakpoints 查看斷點(diǎn)信息。

Linux系統(tǒng)下如何使用GDB調(diào)試程序

注:

  刪除斷點(diǎn)可以有以下幾種方式:

(1)clear 行號(hào)

    (2)delete 斷點(diǎn)號(hào)

    (3)clear 函數(shù)名

  上述三種方式都可以刪除斷點(diǎn)

    (4)刪除所有斷點(diǎn) delete

 (5)開(kāi)始調(diào)試

Linux系統(tǒng)下如何使用GDB調(diào)試程序

注:

   使用命令 run 或者 r 可以開(kāi)始對(duì)載入的文件進(jìn)行調(diào)試,程序在第一個(gè)斷點(diǎn)處停止,可以使用命令 p 變量名 輸出變量名對(duì)應(yīng)的值。

 s 表示step的含義,單步執(zhí)行

Linux系統(tǒng)下如何使用GDB調(diào)試程序

注:

next命令,是按照行執(zhí)行,如果該行有函數(shù)調(diào)用,單步調(diào)試會(huì)跳轉(zhuǎn)到程序中,next會(huì)執(zhí)行運(yùn)行結(jié)束該函數(shù)調(diào)用,無(wú)須進(jìn)入。

Linux系統(tǒng)下如何使用GDB調(diào)試程序

注:

display命令,用于跟蹤某個(gè)變量的變化,每次執(zhí)行都會(huì)輸出該變量的值。

   (6)終止調(diào)試

Linux系統(tǒng)下如何使用GDB調(diào)試程序

注:

命令kill 終止當(dāng)前正在調(diào)試的程序

   (7)退出gdb

Linux系統(tǒng)下如何使用GDB調(diào)試程序

Linux有哪些版本

Linux的版本有:Deepin、UbuntuKylin、Manjaro、LinuxMint、Ubuntu等版本。其中Deepin是國(guó)內(nèi)發(fā)展最好的Linux發(fā)行版之一;UbuntuKylin是基于Ubuntu的衍生發(fā)行版;Manjaro是基于Arch的Linux發(fā)行版;LinuxMint默認(rèn)的Cinnamon桌面類似Windows XP簡(jiǎn)單易用;Ubuntu則是以桌面應(yīng)用為主的Linux操作系統(tǒng)。

感謝您能讀到這里,小編希望您對(duì)“Linux系統(tǒng)下如何使用GDB調(diào)試程序”這一關(guān)鍵問(wèn)題有了從實(shí)踐層面最深刻的體會(huì),具體使用情況還需要大家自己動(dòng)手實(shí)踐使用過(guò)才能領(lǐng)會(huì),如果想閱讀更多相關(guān)內(nèi)容的文章,歡迎關(guān)注億速云行業(yè)資訊頻道!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI