調(diào)試?yán)鱃DB(上)-創(chuàng)新互聯(lián)

調(diào)試?yán)鱃DB(上)

1.1 GDB初識(shí)

1.1.1什么是GDB?

GDB是GNU項(xiàng)目中的調(diào)試器(gnu debuger),能夠跟尊程序的執(zhí)行,也能恢復(fù)程序崩潰前的狀態(tài)

新田網(wǎng)站建設(shè)公司創(chuàng)新互聯(lián),新田網(wǎng)站設(shè)計(jì)制作,有大型網(wǎng)站制作公司豐富經(jīng)驗(yàn)。已為新田近千家提供企業(yè)網(wǎng)站建設(shè)服務(wù)。企業(yè)網(wǎng)站搭建\成都外貿(mào)網(wǎng)站建設(shè)要多少錢,請找那個(gè)售后服務(wù)好的新田做網(wǎng)站的公司定做!

1.1.2為什么需要GDB?

軟件產(chǎn)品的研發(fā)過程必然伴隨bug,調(diào)試時(shí)軟件開發(fā)中不可或缺的技術(shù)(調(diào)試工具很重要)

1.1.3 DBG與binutils

調(diào)試?yán)鱃DB(上)

1.2 GDB的常規(guī)使用

1.自定義程序得到啟動(dòng)方式(指定影響程序運(yùn)行的參數(shù))
2.設(shè)置條件斷點(diǎn)(在滿足條件時(shí)程序暫停執(zhí)行)
3.回溯檢查導(dǎo)致程序異常結(jié)束的原因(core dump)
4.動(dòng)態(tài)改變程序的執(zhí)行流(定位問題的輔助方式)

1.3 GDB的啟動(dòng)方式

?直接啟動(dòng):

gdb
gdb test.out
gdb test.out core

?動(dòng)態(tài)鏈接
gdb test.out pid
1.4 GDB的應(yīng)用示例
示例1:

dbg                 //啟動(dòng)
file test.out           //載入目標(biāo)程序
set args arg1 arg2  //設(shè)置命令行參數(shù)
run                 //執(zhí)行目標(biāo)程序
注:gdb  + file test.out  ==  gdb test.out

示例2:

gdb                 //啟動(dòng)
attach  pid         //鏈接到目標(biāo)進(jìn)程,鏈接成功后目標(biāo)程序?qū)⑼V箞?zhí)行
continue                //恢復(fù)執(zhí)行
注:gdb + attach pid  ==  gdb test.out pid

1.5 斷點(diǎn)調(diào)試

1.5.1斷點(diǎn)類型

  • 軟件斷點(diǎn):由非法指令異常實(shí)現(xiàn)(軟件實(shí)現(xiàn)),,通過中斷來實(shí)現(xiàn)程序位于ram中
  • 硬件斷點(diǎn):由硬件特性實(shí)現(xiàn)(數(shù)量有限)程序位于flash(只讀)中
  • 數(shù)據(jù)斷點(diǎn):由硬件特性實(shí)現(xiàn)(數(shù)量有限),監(jiān)視內(nèi)存,當(dāng)內(nèi)存被改寫時(shí)觸發(fā)

    1.5.2軟件斷點(diǎn)相關(guān)操作

    通過函數(shù)名設(shè)置斷點(diǎn):

    break func_name [ if var = value]
    tbreak func_name [ if var = value]

    通過行號(hào)設(shè)置斷點(diǎn):

    break file_name:line_num [ if var = value ]
    break file_name:line_num [ if var = value ]

    Tbreak設(shè)置的斷點(diǎn)只生效一次。
    調(diào)試?yán)鱃DB(上)

    1.5.3調(diào)試時(shí)相關(guān)操作

    調(diào)試?yán)鱃DB(上)

    1.5.4硬件斷點(diǎn)及其操作

    當(dāng)代碼位于只讀寄存器(flash)時(shí),只能通過硬件斷點(diǎn)調(diào)試
    硬件斷點(diǎn)需要硬件支持,數(shù)量有限
    GDB通過hbreak命令支持硬件斷點(diǎn),與break使用方法完全一致

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。

分享文章:調(diào)試?yán)鱃DB(上)-創(chuàng)新互聯(lián)
文章源于:http://bm7419.com/article12/dssegc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供用戶體驗(yàn)、網(wǎng)站營銷、靜態(tài)網(wǎng)站企業(yè)建站、關(guān)鍵詞優(yōu)化、品牌網(wǎng)站建設(shè)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

外貿(mào)網(wǎng)站制作