精品丰满熟女一区二区三区_五月天亚洲欧美综合网_亚洲青青青在线观看_国产一区二区精选

  • <menu id="29e66"></menu>

    <bdo id="29e66"><mark id="29e66"><legend id="29e66"></legend></mark></bdo>

  • <pre id="29e66"><tt id="29e66"><rt id="29e66"></rt></tt></pre>

      <label id="29e66"></label><address id="29e66"><mark id="29e66"><strike id="29e66"></strike></mark></address>
      學(xué)習(xí)啦>學(xué)習(xí)電腦>操作系統(tǒng)>Linux教程>

      gdb基本使用方法及常用命令

      時(shí)間: 志藝942 分享

        GNU調(diào)試器(GNU Debugger, GDB)是一個(gè)開源的源代碼級(jí)的調(diào)試工具,其性能優(yōu)良、功能齊全、易于使用,在嵌入式系統(tǒng)開發(fā)過程中扮演著越來越重要的角色。接下來是小編為大家收集的gdb基本使用方法及常用命令,希望能幫到大家。

        gdb基本使用方法及常用命令

        一、編譯、鏈接成可執(zhí)行文件

        記得加入-g選項(xiàng)

        gcc -g gdbtest.c -o test

        二、啟動(dòng)gdb

        gdb filename ---- 本例中是gdb test,如下圖:

        或者

        gdb

        (gdb)file filename,如下圖:

        三、退出

        (gdb)quit

        四、基本操作

        (1)列出源代碼list,在提示符下打入list,會(huì)出現(xiàn)一部分源代碼,接著按回車會(huì)重復(fù)上一次命令

        可以利用help list查詢list的使用方法

        a.list 10 -- 以第10行為中心顯示

        b.顯示compute函數(shù) list compute

        c.列出10-15行的源代碼 list 10,15

        d.列出其他文件的相應(yīng)行或函數(shù)

        list gdbinc.h:1

        list gdbinc.h:max

        (2)運(yùn)行程序run

        如果需要參數(shù)可以在run后面跟上參數(shù)

        (3)設(shè)置斷點(diǎn)break

        a.在某行設(shè)置斷點(diǎn) break 7

        b.在某函數(shù)設(shè)置斷點(diǎn) break compute

        c.在其他文件設(shè)置斷點(diǎn)(行或函數(shù)名) break gdbinc.h:2 break gdbinc.h:max

        d.在某個(gè)地址設(shè)置斷點(diǎn) break *address (當(dāng)你調(diào)試的程序沒有源程序時(shí)使用)

        e.查詢斷點(diǎn)信息info break

        f.條件斷點(diǎn) break <linenum>or<func> if condition

        如:break 8 if a == 10

        g.開啟和關(guān)閉斷點(diǎn)

        disable 斷點(diǎn)號(hào) (關(guān)閉)

        enable 斷點(diǎn)號(hào) (開啟)

        enable once 斷點(diǎn)號(hào) (開啟一次)

        enable delete 斷點(diǎn)號(hào)(開啟一次后刪除)

        h.刪除斷點(diǎn)

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

        clear 清除當(dāng)前行的斷點(diǎn)

        i.繼續(xù)執(zhí)行continue,當(dāng)執(zhí)行到某處中斷時(shí),使其繼續(xù)執(zhí)行

        (4)單步執(zhí)行不進(jìn)入函數(shù)next

        (5)單步執(zhí)行進(jìn)入函數(shù)step

        (6)終止正在調(diào)試的程序kill

      (7)監(jiān)視值變動(dòng)watch expression(當(dāng)你運(yùn)行run后,你想知道哪些值在運(yùn)行中被改變了,可以設(shè)置此)

        (8)監(jiān)視值被讀rwatch expression(基本同上)

        (9)在運(yùn)行時(shí)打印變量的值print expression

        print/F expression,其中F為格式(x--16進(jìn)制,d--有符號(hào)十進(jìn)制,u--無符號(hào)十進(jìn)制,f--浮點(diǎn)格式)

        (10)修改變量值set variable=value

        (11)執(zhí)行shell命令[shell 命令名]

        (12)不退出gdb產(chǎn)生可執(zhí)行文件[make,必須有Makefile文件]

        (13)info命令(此命令用處廣泛)

        a.info break查看斷點(diǎn)信息(見上面斷點(diǎn))

        b.info args查看當(dāng)前方法的參數(shù)

        c.info stack查看調(diào)用堆棧

        d.info source查看當(dāng)前源文件的信息

        e.info sources查看所有在程序中的源文件路徑

        (14)查看內(nèi)存命令 x/<n/f/u> <addr> n、f、u是可選的參數(shù)。<addr>表示一個(gè)內(nèi)存地址。

        n 是一個(gè)正整數(shù),表示顯示內(nèi)存的長(zhǎng)度,也就是說從當(dāng)前地址向后顯示幾個(gè)地址的內(nèi)容。

        f 表示顯示的格式,參見上面。如果地址所指的是字符串,那么格式可以是s,如果地十是指令地址,那么格式可以是i。

        u 表示從當(dāng)前地址往后請(qǐng)求的字節(jié)數(shù),如果不指定的話,GDB默認(rèn)是4個(gè)bytes。u參數(shù)可以用下面的字符來代替,b表示單字節(jié),h表示雙字節(jié),w表示四字節(jié),g表示八字節(jié)。當(dāng)我們指定了字節(jié)長(zhǎng)度后,GDB會(huì)從指內(nèi)存定的內(nèi)存地址開始,讀寫指定字節(jié),并把其當(dāng)作一個(gè)值取出來。

        輸出格式

        一般來說,GDB會(huì)根據(jù)變量的類型輸出變量的值。但你也可以自定義GDB的輸出的格式。例如,你想輸出一個(gè)整數(shù)的十六進(jìn)制,或是二進(jìn)制來查看這個(gè)整型變量的中的位的情況。要做到這樣,你可以使用GDB的數(shù)據(jù)顯示格式:

        x 按十六進(jìn)制格式顯示變量。

        d 按十進(jìn)制格式顯示變量。

        u 按十六進(jìn)制格式顯示無符號(hào)整型。

        o 按八進(jìn)制格式顯示變量。

        t 按二進(jìn)制格式顯示變量。

        a 按十六進(jìn)制格式顯示變量。

        c 按字符格式顯示變量。

        f 按浮點(diǎn)數(shù)格式顯示變量。

        比如:上圖中 x/4dw 0xbffff650 指的是顯示4個(gè)單元的內(nèi)容,以10進(jìn)制顯示,每個(gè)單元長(zhǎng)度為4個(gè)字節(jié)


      看了“gdb基本使用方法及常用命令”還想看:

      1.2014年9月計(jì)算機(jī)二級(jí)Access無紙化預(yù)測(cè)選擇題

      2.c語(yǔ)言函數(shù)調(diào)用過程

      3.嵌入式培訓(xùn)心得

      4.簡(jiǎn)潔的英語(yǔ)簡(jiǎn)歷范文模板

      2805467