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

學(xué)習(xí)啦 > 學(xué)習(xí)電腦 > 操作系統(tǒng) > Linux教程 > Linux GDB常用命令介紹

Linux GDB常用命令介紹

時間: 志藝942 分享

Linux GDB常用命令介紹

  你還在為不知道Linux GDB常用命令介紹而煩惱么?接下來是小編為大家收集的Linux GDB常用命令介紹,希望能幫到大家。

  Linux GDB常用命令介紹

  1.啟動和退出gdb

  (1)啟動:gdb ***:顯示一段版權(quán)說明; (*** 表示可執(zhí)行程序名)

  (2)退出:quit。有的時候輸入quit后會出現(xiàn)相關(guān)提示:類似于“(y/n)”,輸入y

  2.顯示和查找程序源代碼

  (1)list :顯示10行代碼,但是我為什么沒有顯示成功呢?

  (2)list 5,10:顯示源文件第五行到第十行的代碼

  (3)list t4.c:5,10:顯示源文件中第五行到第十行的代碼,在跳是含有多個源文件的次序時使用;

  (4)list get_sum:顯示get_sum函數(shù)周圍的代碼//什么叫周圍的代碼呢?

  (5)list t4.c :get_sum:顯示源文件t4.c中第五行到第十行的代碼,在跳是含有多個源文件的次序時使用;

  (6)如果在調(diào)試中運(yùn)行l(wèi)inux命令,則可以在gdb的提示符下輸入shell命令. (gdb)shell ls

  (7)search forward用來從當(dāng)前行向前查找第一個匹配的字符串;

  search get_sum forward get_sum

  (8)reverse_search 用來從當(dāng)前行想前查找第一個匹配的字符串: Example: reverse_search main

  3.執(zhí)行程序和獲得幫助;

  gdb -q test 或者file test只是裝入程序,程序并沒有運(yùn)行。如果要程序開始運(yùn)行,在gdb提示符下輸入run即可。

  如果想要詳細(xì)了解gdb某個命令的使用方法,可以用help 命令 Example:(gdb)help list (gdb)help all

  4.設(shè)置和管理斷點(diǎn)

  (1)以行號設(shè)置斷點(diǎn):(gdb)break 7

  (2)以函數(shù)名設(shè)置斷點(diǎn):(gdb)break get_sum

  (3)以條件表達(dá)式設(shè)置斷點(diǎn):方法一:break 行號或者函數(shù)名 if 條件. Example: (gdb)break 7 if i==99

  方法二:watch 條件表達(dá)式,下面是具體的舉例:

  方法三:awatch;用來給表達(dá)式設(shè)置斷點(diǎn),在表達(dá)式的值發(fā)生改變或者表達(dá)式的值杯讀取的時候,程序暫時停止;

  (4).查看當(dāng)前設(shè)置的斷點(diǎn):info breakpoints

  Num Type Disp Enb Address What

  解釋:Num列表示斷點(diǎn)的編號,Type指明類型,類型位breakpoints說明是中斷。Disp指示中斷點(diǎn)在生效一次后是否就失去作用,如果是則為dis,不時則為keep?!    nb表明當(dāng)前中斷點(diǎn)是否有效,如果是y,不是則為n。Address列表中斷所處的內(nèi)存地址。What列出中斷發(fā)生在哪個函數(shù)的第幾行。

  5.使斷點(diǎn)失效或者有效

  使用“disable 斷點(diǎn)編號”命令可以是某個斷點(diǎn)失效,程序運(yùn)行到該段點(diǎn)時不會停下來而是繼續(xù)運(yùn)行。

  使用“enable 斷點(diǎn)編號”命令可以是某個斷點(diǎn)恢復(fù)有效。

  6.刪除斷點(diǎn)

  disable只是讓某個斷點(diǎn)暫時失效,斷點(diǎn)依然存在與程序中。如果要徹底的刪除某個斷點(diǎn),可以使用clear或者delete命令。

  (1)clear:刪除程序中所有的斷點(diǎn);

  (2)clear 行號:刪除此行中的斷點(diǎn)

  (3)clear 函數(shù)名:刪除該函數(shù)的斷點(diǎn)

  (4)delete 斷點(diǎn)編號:刪除指定編號的斷點(diǎn)。如果一次要刪除多個斷點(diǎn),各個斷點(diǎn)編號以空格隔開。

  7.查看和設(shè)置變量的值

  (1)print 變量或表達(dá)式 --- print 變量=值:對變量賦值 --- print 表達(dá)式@要打印的值的個數(shù)n:打印以表達(dá)式值開始n個數(shù)

  (2)whatis命令:顯示某個變量或表達(dá)式的數(shù)據(jù)類型。格式:whatis 變量或者表達(dá)式

  (3)set 命令:給變量賦值,格式:set variable 變量=值

  將上面實例中的print i=200改為set variable i=200可以得到同樣的效果//這個不懂矮。。

  除了這個用法外,set命令還有一些其他用法。比如可以針對遠(yuǎn)程調(diào)試進(jìn)行設(shè)置,可以用來設(shè)置gdb一行的字符數(shù)等。

  8.控制程序的執(zhí)行

  (1)continue命令:讓程序繼續(xù)運(yùn)行,直到下一個斷點(diǎn)或者運(yùn)行完為止。格式:continue

  (2)kill命令:用于結(jié)束當(dāng)前程序的調(diào)試

  (3)next和step命令

  區(qū)別:如果遇到函數(shù),next會把函數(shù)調(diào)用當(dāng)作一條語句來執(zhí)行,再次輸入next會執(zhí)行函數(shù)調(diào)用后的語句;

  而step則會跟蹤進(jìn)入函數(shù),一次一條的執(zhí)行函數(shù)內(nèi)的代碼,直到函數(shù)內(nèi)的代碼執(zhí)行完,在進(jìn)行函數(shù)調(diào)用后的語句;

  (4)nexti和stepi命令:用來單步執(zhí)行一條機(jī)器指令,注意不是單步執(zhí)行一條魚據(jù)。單步執(zhí)行一條語句使用next和step命令。通常一條語句有多條機(jī)器指令構(gòu)成的。

  注意的是:gdb的一些命令可以簡寫,比如list可以用li來代替,continue命令可以用cont來代替。

  9. Linux GDB命令與Visual Studio Debug下命令對比:

  Linux windows

  進(jìn)入調(diào)試   gdb *.exe F5

  quit

  增加/取消斷點(diǎn) break LineNumber   F9

  clear LineNumber

  單步運(yùn)行        next F10

  step F11

  開始調(diào)試運(yùn)行      run F5

  運(yùn)行到下一個斷點(diǎn)    continue F5

  結(jié)束調(diào)試        kill shift+F5


看了“Linux GDB常用命令介紹”還想看:

1.Linux系統(tǒng)有什么常用命令

2.Linux安全性能檢查常用命令介紹

3.Linux實用工具的命令行詳解

4.Linux GCC常用命令詳解

5.CMD命令提示符詳細(xì)知識

2805121