久久婷婷香蕉热狠狠综合,精品无码国产自产拍在线观看蜜,寡妇房东在做爰3,中文字幕日本人妻久久久免费,国产成人精品三上悠亚久久

當前位置:首頁 > 嵌入式培訓 > 嵌入式學習 > 講師博文 > GDB調試入門(men)(一)

GDB調試入門(一) 時間:2018-01-09      ;來源:未知

當代(dai)碼量(liang)較多(duo)時,使用GDB調(diao)試代(dai)碼可(ke)以相對(dui)便捷(jie)的定位錯(cuo)誤點,提高Dbug效率。

首先先熟悉下GDB調(diao)試(shi)的基本流程(cheng):

1. 在編譯代碼是添(tian)加 gcc添(tian)加–g選(xuan)項

:gcc -g test.c -o test.out

2. 然后在bash環境中(zhong)使用GDB 命令(ling)調(diao)用編譯生成程序(xu):

:gdb ./test.out

進入調試頁面

GDB調試

在這(zhe)個界面下(xia)我(wo)們可以通過一些GDB的常用命令(ling)(ling)進行代(dai)碼的細節(jie)調試(shi),常用命令(ling)(ling)如下(xia):

運行(xing)該程(cheng)序:run(簡寫r)

查看代碼:list(簡寫l)

打(da)斷點:break(簡寫b)后跟(gen)行號(或(huo)者(zhe)函(han)數名(ming)、文件名(ming):行號)

查(cha)看所有斷點(dian):info break

跳(tiao)轉到下一斷點處:continue(簡(jian)寫c)

刪除斷(duan)點:delete(簡(jian)寫d)斷(duan)點編號

單步執行:next(簡寫n)

進(jin)入(ru)函數:step(簡(jian)寫s)

查看變量的值(zhi):print(簡寫p)變量名(只顯示一次)

查看變(bian)量(liang)的值,并且(qie)使其動態改變(bian):display 變(bian)量(liang)名(一直顯(xian)示,并且(qie)動態變(bian)化)

刪除10中變量(liang)的(de)顯示:undisplay 變量(liang)號(非變量(liang)名(ming))

跳到(dao)某行(xing):until 行(xing)號(中途有斷點則暫停到(dao)斷點處)

查看調用堆棧(zhan):bt

執行完(wan)當前(qian)的函數:finish

設(she)置變(bian)量的值:set var 變(bian)量名 = 值

關閉斷點:disable 斷點號

開(kai)啟斷點:enable 斷點號(hao)

執行上一(yi)次的指令(ling):Enter按鍵

退(tui)出gdb:quit(簡寫(xie)q)

首先我們可(ke)以使用list顯示(shi)當前程序入口代碼:

GDB調試

在調試(shi)的關鍵點上(shang)使用break命(ming)令添(tian)加斷(duan)(duan)點,并是可以使用info break查看斷(duan)(duan)點:

GDB調試

添加斷(duan)(duan)點后可以使用run命令開始運行程序,程序將運行至第一(yi)個斷(duan)(duan)點處(chu):

GDB調試

程序(xu)運(yun)行后使(shi)用 print 命令查看當(dang)前(qian)的變量值

GDB調試

使用 next 命令可(ke)(ke)以進行單(dan)步調(diao)試,每次執(zhi)行一(yi)行,同樣可(ke)(ke)以使用print 命令查看變(bian)量(liang)變(bian)化(hua)

GDB調試

如果需要重復關注變量值,可以使(shi)用display命令這樣每次執行暫停后都會自動(dong)顯(xian)示(shi)變量值

GDB調試

 如果想停止調(diao)試(shi),可以執行quit命(ming)令(ling)退出調(diao)試(shi)界面。

GDB調試

其他(ta)命令大家可以自行嘗試,比如continue可以直接(jie)(jie)從當前位置直接(jie)(jie)執行到下一個(ge)斷點處,使用的(de)頻率(lv)也比較高,這里不在復述。--孟德慧(hui)。

 在日常調試中,我們經常會遇到段錯誤。使(shi)用gdb可以可以很容(rong)易的找到錯誤的根源。

首先,重新(xin)使用–g選項編譯出錯代碼(ma)。并正常運(yun)行(xing)直(zhi)至其(qi)出段錯誤。測試代碼(ma)如下:

GDB調試

段錯誤(wu)觸發后,同(tong)目錄下回生成(cheng)一個core文件(jian)(jian)(jian),里面保存的是段錯誤(wu)相關(guan)信(xin)息。如果core文件(jian)(jian)(jian)沒有生成(cheng),則是因為(wei)系統默認core文件(jian)(jian)(jian)大小(xiao)為(wei)0,可以運行ulimit -c 10000來設(she)置core文件(jian)(jian)(jian)容量(liang),然后重新執行程序。

得到core文件后,使用gdb./test core 來查看出錯代(dai)碼(ma)所在位置(zhi)。

GDB調試

并可以執行run命令在gdb調試界面下(xia)直接運(yun)行程序,使段(duan)錯誤再次出現。

GDB調試

之后(hou)執行 pirnt命令來查看出(chu)錯行相關數(shu)值來確認錯誤(wu)信息:確定*p為空指針操(cao)(cao)作(zuo)(實(shi)際(ji)代(dai)碼中更多的(de)可能是野(ye)指針或越界操(cao)(cao)作(zuo))。

GDB調試

上一篇:Linux底層驅動開發需要學習哪些內容

下一篇:標準IO 中對文件的基本操作

熱點文章推薦
華清學員就業榜單
高薪學(xue)員(yuan)經(jing)驗分享(xiang)
熱點新聞推(tui)薦
前臺專線:010-82525158 企業培訓洽談(tan)專線(xian):010-82525379 院(yuan)校合作(zuo)洽(qia)談(tan)專線:010-82525379 Copyright © 2004-2022 北京華清遠見科技集團有限公司 版權所有 ,,京公海網安備11010802025203號

回到頂部