日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > linux >内容正文

linux

Linux GDB常用命令一栏

發(fā)布時間:2024/9/5 linux 50 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Linux GDB常用命令一栏 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

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è)置和管理斷點
(1)以行號設(shè)置斷點:(gdb)break 7?
(2)以函數(shù)名設(shè)置斷點:(gdb)break get_sum
(3)以條件表達(dá)式設(shè)置斷點:方法一:break 行號或者函數(shù)名 if? 條件.? Example:? (gdb)break 7 if i==99
?????????????????????????????????????????????????????? 方法二:watch 條件表達(dá)式,下面是具體的舉例:
?????????????????????????????????????????????????????? 方法三:awatch;用來給表達(dá)式設(shè)置斷點,在表達(dá)式的值發(fā)生改變或者表達(dá)式的值杯讀取的時候,程序暫時停止;
? (4).查看當(dāng)前設(shè)置的斷點:info breakpoints
    Num???? Type?????????? Disp Enb Address??? What
    解釋:Num列表示斷點的編號,Type指明類型,類型位breakpoints說明是中斷。Disp指示中斷點在生效一次后是否就失去作用,如果是則為dis,不時則為keep。     Bnb表明當(dāng)前中斷點是否有效,如果是y,不是則為n。Address列表中斷所處的內(nèi)存地址。What列出中斷發(fā)生在哪個函數(shù)的第幾行。


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

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

6.刪除斷點
disable只是讓某個斷點暫時失效,斷點依然存在與程序中。如果要徹底的刪除某個斷點,可以使用clear或者delete命令。
(1)clear:刪除程序中所有的斷點;
(2)clear 行號:刪除此行中的斷點
(3)clear 函數(shù)名:刪除該函數(shù)的斷點
(4)delete 斷點編號:刪除指定編號的斷點。如果一次要刪除多個斷點,各個斷點編號以空格隔開。

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)行,直到下一個斷點或者運(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 ????????????????????????????????????

?????增加/取消斷點????????????????????break? LineNumber  ????????????????? F9

????????????          clear?? LineNumber 

??? 單步運(yùn)行        next????????????????????????????????????????????????????? F10

????????????????????????????????????????????????? step????????????????????????????????????????????????????? F11

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

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

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

轉(zhuǎn)載于:https://www.cnblogs.com/gongxijun/p/4340227.html

總結(jié)

以上是生活随笔為你收集整理的Linux GDB常用命令一栏的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。