六月丁香五月婷婷,丁香五月婷婷网,欧美激情网站,日本护士xxxx,禁止18岁天天操夜夜操,18岁禁止1000免费,国产福利无码一区色费

學習啦>學習電腦>操作系統(tǒng)>Linux教程>

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

時間: 志藝942 分享

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

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

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

  記得加入-g選項

  gcc -g gdbtest.c -o test

  二、啟動gdb

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

  或者

  gdb

  (gdb)file filename,如下圖:

  三、退出

  (gdb)quit

  四、基本操作

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

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

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

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

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

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

  list gdbinc.h:1

  list gdbinc.h:max

  (2)運行程序run

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

  (3)設置斷點break

  a.在某行設置斷點 break 7

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

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

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

  e.查詢斷點信息info break

  f.條件斷點 break <linenum>or<func> if condition

  如:break 8 if a == 10

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

  disable 斷點號 (關(guān)閉)

  enable 斷點號 (開啟)

  enable once 斷點號 (開啟一次)

  enable delete 斷點號(開啟一次后刪除)

  h.刪除斷點

  delete 斷點號

  clear 清除當前行的斷點

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

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

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

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

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

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

  (9)在運行時打印變量的值print expression

  print/F expression,其中F為格式(x--16進制,d--有符號十進制,u--無符號十進制,f--浮點格式)

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

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

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

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

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

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

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

  d.info source查看當前源文件的信息

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

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

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

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

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

  輸出格式

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

  x 按十六進制格式顯示變量。

  d 按十進制格式顯示變量。

  u 按十六進制格式顯示無符號整型。

  o 按八進制格式顯示變量。

  t 按二進制格式顯示變量。

  a 按十六進制格式顯示變量。

  c 按字符格式顯示變量。

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

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


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

1.2014年9月計算機二級Access無紙化預測選擇題

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

3.嵌入式培訓心得

4.簡潔的英語簡歷范文模板

2805467