国产宅男网站在线|亚洲A级性爱免费视频|亚洲中精品级在线|午夜福利AA毛

  • <dd id="gf5jf"><th id="gf5jf"></th></dd>

    <cite id="gf5jf"><label id="gf5jf"></label></cite>
  • <div id="gf5jf"><listing id="gf5jf"></listing></div>
    學(xué)習(xí)啦>學(xué)習(xí)電腦>操作系統(tǒng)>Linux教程>

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

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

      GNU調(diào)試器(GNU Debugger, GDB)是一個(gè)開(kāi)源的源代碼級(jí)的調(diào)試工具,其性能優(yōu)良、功能齊全、易于使用,在嵌入式系統(tǒng)開(kāi)發(fā)過(guò)程中扮演著越來(lái)越重要的角色。接下來(lái)是小編為大家收集的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)試的程序沒(méi)有源程序時(shí)使用)

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

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

      如:break 8 if a == 10

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

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

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

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

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

      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--無(wú)符號(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)信息(見(jià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)度,也就是說(shuō)從當(dāng)前地址向后顯示幾個(gè)地址的內(nèi)容。

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

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

      輸出格式

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

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

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

      u 按十六進(jìn)制格式顯示無(wú)符號(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無(wú)紙化預(yù)測(cè)選擇題

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

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

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

    2805467