在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,91精品国产91免费

<menu id="6qfwx"><li id="6qfwx"></li></menu>
    1. <menu id="6qfwx"><dl id="6qfwx"></dl></menu>

      <label id="6qfwx"><ol id="6qfwx"></ol></label><menu id="6qfwx"></menu><object id="6qfwx"><strike id="6qfwx"><noscript id="6qfwx"></noscript></strike></object>
        1. <center id="6qfwx"><dl id="6qfwx"></dl></center>

            新聞中心

            EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > Linux下C編程基礎(chǔ)之:gdb調(diào)試器

            Linux下C編程基礎(chǔ)之:gdb調(diào)試器

            作者: 時間:2013-09-13 來源:網(wǎng)絡(luò) 收藏

            本文引用地址:http://www.biyoush.com/article/257150.htm

            3.4.2gdb基本命令

            gdb的命令可以通過查看help進行查找,由于gdb的命令很多,因此gdb的help將其分成了很多種類(class),用戶可以通過進一步查看相關(guān)class找到相應(yīng)命令,如下所示:

            (gdb)help

            Listofclassesofcommands:

            aliases--Aliasesofothercommands

            breakpoints--Makingprogramstopatcertainpoints

            data--Examiningdata

            files--Specifyingandexaminingfiles

            internals--Maintenancecommands

            Typehelpfollowedbyaclassnameforalistofcommandsinthatclass.

            Typehelpfollowedbycommandnameforfulldocumentation.

            Commandnameabbreviationsareallowedifunambiguous.

            上述列出了gdb各個分類的命令,注意底部的加粗部分說明其為分類命令。接下來可以具體查找各分類的命令,如下所示:

            (gdb)helpdata

            Examiningdata.

            Listofcommands:

            call--Callafunctionintheprogram

            deletedisplay--Cancelsomeexpressionstobedisplayedwhenprogramstops

            deletemem--Deletememoryregion

            disabledisplay--Disablesomeexpressionstobedisplayedwhenprogramstops

            Typehelpfollowedbycommandnameforfulldocumentation.

            Commandnameabbreviationsareallowedifunambiguous.

            若用戶想要查找call命令,就可鍵入“helpcall”。

            (gdb)helpcall

            Callafunctionintheprogram.

            Theargumentisthefunctionnameandarguments,inthenotationofthe

            currentworkinglanguage.Theresultisprintedandsavedinthevalue

            history,ifitisnotvoid.

            當(dāng)然,若用戶已知命令名,直接鍵入“help[command]”也是可以的。

            gdb中的命令主要分為以下幾類:工作環(huán)境相關(guān)命令、設(shè)置斷點與恢復(fù)命令、源代碼查看命令、查看運行數(shù)據(jù)相關(guān)命令及修改運行參數(shù)命令。以下就分別對這幾類命令進行講解。

            1.工作環(huán)境相關(guān)命令

            gdb中不僅可以調(diào)試所運行的程序,而且還可以對程序相關(guān)的工作環(huán)境進行相應(yīng)的設(shè)定,甚至還可以使用shell中的命令進行相關(guān)的操作,其功能極其強大。gdb常見工作環(huán)境相關(guān)命令如表3.11所示。

            表3.11 gdb工作環(huán)境相關(guān)命令

            命令格式

            含義

            setargs運行時的參數(shù)

            指定運行時參數(shù),如setargs2

            showargs

            查看設(shè)置好的運行參數(shù)

            Pathdir

            設(shè)定程序的運行路徑

            showpaths

            查看程序的運行路徑

            setenvironmentvar[=value]

            設(shè)置環(huán)境變量

            showenvironment[var]

            查看環(huán)境變量

            cddir

            進入dir目錄,相當(dāng)于shell中的cd命令

            Pwd

            顯示當(dāng)前工作目錄

            shellcommand

            運行shell的command命令

            2.設(shè)置斷點與恢復(fù)命令

            gdb中設(shè)置斷點與恢復(fù)的常見命令如表3.12所示。

            表3.12 gdb設(shè)置斷點與恢復(fù)相關(guān)命令

            命令格式

            含義

            Infob

            查看所設(shè)斷點

            break[文件名:]行號或函數(shù)名條件表達式>

            設(shè)置斷點

            tbreak[文件名:]行號或函數(shù)名條件表達式>

            設(shè)置臨時斷點,到達后被自動刪除

            delete[斷點號]

            刪除指定斷點,其斷點號為“infob”中的第一欄。若缺省斷點號則刪除所有斷點

            disable[斷點號]

            停止指定斷點,使用“infob”仍能查看此斷點。同delete一樣,若缺省斷點號則停止所有斷點

            enable[斷點號]

            激活指定斷點,即激活被disable停止的斷點

            condition[斷點號]條件表達式>

            修改對應(yīng)斷點的條件

            ignore[斷點號]num>

            在程序執(zhí)行中,忽略對應(yīng)斷點num次

            Step

            單步恢復(fù)程序運行,且進入函數(shù)調(diào)用

            Next

            單步恢復(fù)程序運行,但不進入函數(shù)調(diào)用

            Finish

            運行程序,直到當(dāng)前函數(shù)完成返回

            C

            繼續(xù)執(zhí)行函數(shù),直到函數(shù)結(jié)束或遇到新的斷點

            設(shè)置斷點在gdb的調(diào)試中非常重要,下面著重講解gdb中設(shè)置斷點的方法。

            gdb中設(shè)置斷點有多種方式:其一是按行設(shè)置斷點;另外還可以設(shè)置函數(shù)斷點和條件斷點。下面具體介紹后兩種設(shè)置斷點的方法。

            ①函數(shù)斷點。

            gdb中按函數(shù)設(shè)置斷點只需把函數(shù)名列在命令“b”之后,如下所示:

            (gdb)btest.c:sum(可以簡化為bsum)

            Breakpoint1at0x80484ba:filetest.c,line16.

            (gdb)infob

            NumTypeDispEnbAddressWhat

            1breakpointkeepy0x080484bainsumattest.c:16

            要注意的是,此時的斷點實際是在函數(shù)的定義處,也就是在16行處(注意第16行還未執(zhí)行)。

            ②條件斷點。

            gdb中設(shè)置條件斷點的格式為:b行數(shù)或函數(shù)名if表達式。具體實例如下所示:

            (gdb)b8ifi==10

            Breakpoint1at0x804848c:filetest.c,line8.

            (gdb)infob

            NumTypeDispEnbAddressWhat

            1breakpointkeepy0x0804848cinmainattest.c:8

            stoponlyifi==10

            (gdb)r

            Startingprogram:/home/yul/test

            Thesumof1-mis1275

            Breakpoint1,main()attest.c:9

            9n+=i;

            (gdb)pi

            $1=10

            可以看到,該例中在第8行(也就是運行完第7行的for循環(huán))設(shè)置了一個“i==0”的條件斷點,在程序運行之后可以看出,程序確實在i為10時暫停運行。

            3.gdb中源碼查看相關(guān)命令

            在gdb中可以查看源碼以方便其他操作,它的常見相關(guān)命令如表3.13所示。

            表3.13 gdb源碼查看相關(guān)相關(guān)命令

            命令格式

            含義

            list行號>|函數(shù)名>

            查看指定位置代碼

            file[文件名]

            加載指定文件

            forward-search正則表達式

            源代碼的前向搜索

            reverse-search正則表達式

            源代碼的后向搜索

            dirDIR

            將路徑DIR添加到源文件搜索的路徑的開頭

            showdirectories

            顯示源文件的當(dāng)前搜索路徑

            infoline

            顯示加載到gdb內(nèi)存中的代碼

            4.gdb中查看運行數(shù)據(jù)相關(guān)命令

            gdb中查看運行數(shù)據(jù)是指當(dāng)程序處于“運行”或“暫停”狀態(tài)時,可以查看的變量及表達式的信息,其常見命令如表3.14所示。

            表3.14 gdb查看運行數(shù)據(jù)相關(guān)命令

            命令格式

            含義

            print表達式|變量

            查看程序運行時對應(yīng)表達式和變量的值

            xn/f/u>

            查看內(nèi)存變量內(nèi)容。其中n為整數(shù)表示顯示內(nèi)存的長度,f表示顯示的格式,u表示從當(dāng)前地址往后請求顯示的字節(jié)數(shù)

            display表達式

            設(shè)定在單步運行或其他情況中,自動顯示的對應(yīng)表達式的內(nèi)容

            backtrace

            查看當(dāng)前棧的情況,即可以查到哪些被調(diào)用的函數(shù)尚未返回

            linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)

            linux相關(guān)文章:linux教程




            評論


            相關(guān)推薦

            技術(shù)專區(qū)

            關(guān)閉