gdb調(diào)試

傳入命令行參數(shù)

gdb program --args arglist 
(gdb) set args arglist 
(gdb) run arglist 

info常用

info args|locals|line

多進(jìn)程調(diào)試

查看系統(tǒng)默認(rèn)的follow-fork-mode 和 detach-on-fork:

show follow-fork-mode
show detach-on-fork

設(shè)置follow-fork-mode 和 detach-on-fork:

set follow-fork-mode [parent|child]   
set detach-on-fork [on|off]

運(yùn)行程序,查詢正在調(diào)試的進(jìn)程:

顯示GDB調(diào)試的所有inferior蕉扮,GDB會(huì)為他們分配ID。其中帶有*的進(jìn)程是正在調(diào)試的inferior。( GDB將每一個(gè)被調(diào)試程序的執(zhí)行狀態(tài)記錄在一個(gè)名為inferior的結(jié)構(gòu)中。一般情況下一個(gè)inferior對(duì)應(yīng)一個(gè)進(jìn)程,每個(gè)不同的inferior有不同的地址空間含懊。inferior有時(shí)候會(huì)在進(jìn)程沒有啟動(dòng)的時(shí)候就存在。)

info inferiors

切換調(diào)試的進(jìn)程:

 inferior <infer number>

斷點(diǎn)查看:

info b

使中斷失效(斷點(diǎn)仍然存在)或有效:

disable <b number>
enable <b number>

刪除斷點(diǎn)

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

clear 行號(hào) : 刪除這行的斷點(diǎn)

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

delete b_id1 b_id2 ... : 刪除指定編號(hào)的斷點(diǎn)

觀察點(diǎn)(WatchPoint):

watch <expr>    變量發(fā)生變化時(shí)中斷
rwatch <expr>    變量被讀時(shí)中斷
awatch <expr>     變量值被讀或被寫時(shí)中斷

反匯編:

disassemble  /rm

指示顯示匯編指令的同時(shí),顯示相應(yīng)的程序源碼范抓;/r指示顯示十六進(jìn)制的計(jì)算機(jī)指令(raw instruction)。

查看寄存器

display/i $pc
(gdb) i r
(gdb) i r a                     # 查看所有寄存器(包括浮點(diǎn)食铐、多媒體)
(gdb) i r esp
(gdb) i r pc

數(shù)組打印

set print array [on|off]
show print array

打開數(shù)組顯示匕垫,打開后當(dāng)數(shù)組顯示時(shí),每個(gè)元素占一行虐呻,如果不打開的話象泵,每個(gè)元素則以逗號(hào)分隔。這個(gè)選項(xiàng)默認(rèn)是關(guān)閉的斟叼。

set print elements 
show print array

如果你的數(shù)組太大了偶惠,那么就可以指定一個(gè)來指定數(shù)據(jù)顯示的最大長(zhǎng)度,當(dāng)?shù)竭_(dá)這個(gè)長(zhǎng)度時(shí)朗涩,GDB就不再往下顯示了忽孽。如果設(shè)置為0,則表示不限制谢床。

GDB環(huán)境變量:

2       void main()
3       {
4               int a[10] = {0};
5               a[1] =8;
6               a[2] =4;
7               a[3] = 9;
8
9       }

只用敲回車扒腕,重復(fù)執(zhí)行上一條語(yǔ)句,環(huán)境變量會(huì)自動(dòng)累加萤悴,從而完成逐個(gè)輸出的功能


image.png

gdb的gui調(diào)試窗口:

layout [src |asm|split]
ctrl-x a (按住Ctrl+x后松開再按a瘾腰,以下快捷鍵操作方式相同)
ctrl-x 1 使TUI只顯示一個(gè)窗口
ctrl-x 2 使TUI顯示兩個(gè)窗口
layout next 切換上一個(gè)視圖
fs n 切換激活的窗口

gdbgui

將調(diào)試的gui在瀏覽器中顯示
https://gdbgui.com/
安裝gdbgui
pip install gdbgui
使用
gdbgui -p 10001 -r "a.out"
-p 10001表示設(shè)定的端口是10001,-r 表示是遠(yuǎn)程remote調(diào)試模式(即調(diào)試界面不在Linux機(jī)上)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末覆履,一起剝皮案震驚了整個(gè)濱河市蹋盆,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌硝全,老刑警劉巖栖雾,帶你破解...
    沈念sama閱讀 217,734評(píng)論 6 505
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異伟众,居然都是意外死亡析藕,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,931評(píng)論 3 394
  • 文/潘曉璐 我一進(jìn)店門凳厢,熙熙樓的掌柜王于貴愁眉苦臉地迎上來账胧,“玉大人竞慢,你說我怎么就攤上這事≈文啵” “怎么了筹煮?”我有些...
    開封第一講書人閱讀 164,133評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)居夹。 經(jīng)常有香客問我败潦,道長(zhǎng),這世上最難降的妖魔是什么准脂? 我笑而不...
    開封第一講書人閱讀 58,532評(píng)論 1 293
  • 正文 為了忘掉前任劫扒,我火速辦了婚禮,結(jié)果婚禮上狸膏,老公的妹妹穿的比我還像新娘沟饥。我一直安慰自己,他們只是感情好环戈,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,585評(píng)論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著澎灸,像睡著了一般院塞。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上性昭,一...
    開封第一講書人閱讀 51,462評(píng)論 1 302
  • 那天拦止,我揣著相機(jī)與錄音,去河邊找鬼糜颠。 笑死汹族,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的其兴。 我是一名探鬼主播顶瞒,決...
    沈念sama閱讀 40,262評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼元旬!你這毒婦竟也來了榴徐?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,153評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤匀归,失蹤者是張志新(化名)和其女友劉穎坑资,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體穆端,經(jīng)...
    沈念sama閱讀 45,587評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡袱贮,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,792評(píng)論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了体啰。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片攒巍。...
    茶點(diǎn)故事閱讀 39,919評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡嗽仪,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出窑业,到底是詐尸還是另有隱情钦幔,我是刑警寧澤,帶...
    沈念sama閱讀 35,635評(píng)論 5 345
  • 正文 年R本政府宣布常柄,位于F島的核電站鲤氢,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏西潘。R本人自食惡果不足惜卷玉,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,237評(píng)論 3 329
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望喷市。 院中可真熱鬧相种,春花似錦、人聲如沸品姓。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,855評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)腹备。三九已至衬潦,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間植酥,已是汗流浹背镀岛。 一陣腳步聲響...
    開封第一講書人閱讀 32,983評(píng)論 1 269
  • 我被黑心中介騙來泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留友驮,地道東北人漂羊。 一個(gè)月前我還...
    沈念sama閱讀 48,048評(píng)論 3 370
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像卸留,于是被迫代替她去往敵國(guó)和親走越。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,864評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容

  • GDB 是 linux 系統(tǒng)上常用的 c/c++ 調(diào)試工具耻瑟,功能十分強(qiáng)大买喧。對(duì)于較為復(fù)雜的系統(tǒng),比如多進(jìn)程系統(tǒng)匆赃,如何...
    batbattle閱讀 4,484評(píng)論 0 6
  • 1.gcc編譯淤毛,首先使用編譯選項(xiàng)-g(在編譯的時(shí)候產(chǎn)生調(diào)試信息)。 2.進(jìn)入gdb的方法: (1)gdb a.ou...
    小餅干_7270閱讀 791評(píng)論 0 1
  • 1蔗蹋、水平觸發(fā)模式下發(fā)送數(shù)據(jù)深度解釋當(dāng)請(qǐng)求處理的最后何荚,往往需要往客戶端發(fā)送數(shù)據(jù)。當(dāng)從連接讀完數(shù)據(jù)并處理后猪杭,需要把感興...
    奧斯特洛司機(jī)閱讀 582評(píng)論 0 1
  • 程序調(diào)試的基本思想是“分析現(xiàn)象->假設(shè)錯(cuò)誤原因->產(chǎn)生新的現(xiàn)象去驗(yàn)證假設(shè)”這樣一個(gè)循環(huán)過程餐塘,根據(jù)現(xiàn)象如何假設(shè)錯(cuò)誤原...
    Manfred_Zone閱讀 16,538評(píng)論 0 26
  • 一、讓我差點(diǎn)跪下的出租車司機(jī) 上周出差皂吮,叫了一部出租車戒傻。 上車之后,司機(jī)就跟我閑聊蜂筹,說:“我從來都不做揚(yáng)招的需纳,滴滴...
    楊Sir楊光柱閱讀 300評(píng)論 0 1