日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

gdb斷點(diǎn)—斷點(diǎn)設(shè)置 斷點(diǎn)管理—單文件,多文件

 果果許 2012-03-30

gdb斷點(diǎn)(在gdb中可以配合shell命令)—斷點(diǎn)設(shè)置 斷點(diǎn)管理—單文件,多文件(c和c++)  

分類: Linux常用工具

在gdb中使用shell命令的方式是:

(gdb) shell  command

但是cd是內(nèi)置命令,就不要使用shell了。

 gdb原文件的搜索
         search text:                              該命令可顯示在當(dāng)前文件中包含text串的下一行。
         Reverse-search text:              該命令可以顯示包含text 的前一行。
 

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

單文件設(shè)置斷點(diǎn):

break命令(可以簡(jiǎn)寫為b)可以用來在調(diào)試的程序中設(shè)置斷點(diǎn),該命令有如下四種形式: 

(gdb) break line-number                           使程序恰好在執(zhí)行給定行之前停止。

(gdb) break function-name                         使程序恰好在進(jìn)入指定的函數(shù)之前停止。

(gdb) break line-or-function if condition         如果condition(條件)是真,程序到達(dá)指定行或函數(shù)時(shí)停止。

(gdb) break routine-name                          在指定例程的入口處設(shè)置斷點(diǎn)

C多文件設(shè)置斷點(diǎn):

如果該程序是由很多原文件構(gòu)成的,你可以在各個(gè)原文件中設(shè)置斷點(diǎn),而不是在當(dāng)前的原文件中設(shè)置斷點(diǎn),其方法如下:(該目錄下)

(gdb) break filename:line-number                  多文件中,在指定文件::指定行,設(shè)置斷點(diǎn)

(gdb) break filename:function-name                多文件中,在指定文件::指定函數(shù)處,設(shè)置斷點(diǎn)     (在C語(yǔ)言中,不存在域名的問題)

要想設(shè)置一個(gè)條件斷點(diǎn),可以利用break if命令,如下所示: 

(gdb) break line-or-function if expr              設(shè)置條件斷點(diǎn)

例:

(gdb) break 46 if testsize==100

            斷點(diǎn)繼續(xù)運(yùn)行:countinue 命令

C++多文件設(shè)置斷點(diǎn):

錯(cuò)誤跨文件設(shè)置斷點(diǎn)方法:

1. b str_parser.cpp:StrParser::LocalSegment                                                                               //其中StrParser是域名

2. b str_parser.cpp:LocalSegment

3. b str_parser.cpp:StrParser::LocalSegment()

正確跨文件設(shè)置方法:

1. b StrParser::LocalSegment                                                                                                      //其中StrParser是域名               

2. b str_parser.cpp:1361    (StrParser::LocalSegment所在行)

 斷點(diǎn)管理:

顯示當(dāng)前gdb的斷點(diǎn)信息:

(gdb) info break

   他會(huì)以如下的形式顯示所有的斷點(diǎn)信息: 

Num Type Disp Enb Address What

1 breakpoint keep y 0x000028bc in init_random at qsort2.c:155

2 breakpoint keep y 0x0000291c in init_organ at qsort2.c:168

刪除指定的某個(gè)斷點(diǎn): 

(gdb) delete breakpoint 1

            該命令將會(huì)刪除編號(hào)為1的斷點(diǎn),如果不帶編號(hào)參數(shù),將刪除所有的斷點(diǎn) 

(gdb) delete breakpoint

禁止使用某個(gè)斷點(diǎn) 

(gdb) disable breakpoint 1

            該命令將禁止斷點(diǎn) 1,同時(shí)斷點(diǎn)信息的 (Enb)域?qū)⒆優(yōu)?nbsp;n

允許使用某個(gè)斷點(diǎn) 

(gdb) enable breakpoint 1

             該命令將允許斷點(diǎn) 1,同時(shí)斷點(diǎn)信息的 (Enb)域?qū)⒆優(yōu)?nbsp;y

清除原文件中某一代碼行上的所有斷點(diǎn) 

(gdb)clean number

  注:number 為原文件的某個(gè)代碼行的行號(hào)

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多