《GDB調(diào)試簡(jiǎn)易教程》PPT課件.ppt

《GDB調(diào)試簡(jiǎn)易教程》PPT課件.ppt

ID:52269505

大?。?.07 MB

頁(yè)數(shù):47頁(yè)

時(shí)間:2020-04-03

《GDB調(diào)試簡(jiǎn)易教程》PPT課件.ppt_第1頁(yè)
《GDB調(diào)試簡(jiǎn)易教程》PPT課件.ppt_第2頁(yè)
《GDB調(diào)試簡(jiǎn)易教程》PPT課件.ppt_第3頁(yè)
《GDB調(diào)試簡(jiǎn)易教程》PPT課件.ppt_第4頁(yè)
《GDB調(diào)試簡(jiǎn)易教程》PPT課件.ppt_第5頁(yè)
資源描述:

《《GDB調(diào)試簡(jiǎn)易教程》PPT課件.ppt》由會(huì)員上傳分享,免費(fèi)在線(xiàn)閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫(kù)。

1、GDB調(diào)試方法與技巧劉鵬昊GDB簡(jiǎn)介:調(diào)試器(例如GDB)能讓你觀(guān)察一個(gè)程序在執(zhí)行時(shí)的內(nèi)部活動(dòng),或者程序出錯(cuò)時(shí)發(fā)生了什么GDB主要能為你做四件事情:運(yùn)行你的程序,設(shè)置所有的能影響程序運(yùn)行的東西保證你的程序在指定的條件下停止當(dāng)你程序停止時(shí),讓你檢查發(fā)生了什么改變你的程序。那樣你可以試著修正某個(gè)bug引起的問(wèn)題,然后繼續(xù)查找另一個(gè)bug啟動(dòng):最通常的命令就是使用一個(gè)參數(shù):$(m68k-linux-)gdb<可執(zhí)行文檔名>你還可以同時(shí)為你的執(zhí)行文件指定一個(gè)core文件:$gdb<可執(zhí)行文件名>core你也可以為你要執(zhí)行的文件指定一個(gè)進(jìn)程號(hào):$gdb<可執(zhí)行文件名><進(jìn)程號(hào)>常用啟動(dòng)

2、參數(shù):-symbols<文件名>(-s<文件名>)從<文件名>中讀去符號(hào)-x<文件名>執(zhí)行g(shù)db命令,在<文件名>指定的文件中存放著一序列的gdb命令,就象一個(gè)批處理-directory(-d)<路徑>指定路徑。把<路徑>加入到搜索源文件的路徑中常用啟動(dòng)參數(shù):-quiet(-q)安靜模式,不輸出介紹和版權(quán)信息-x<文件名>執(zhí)行g(shù)db命令,在<文件名>指定的文件中存放著一序列的gdb命令,就象一個(gè)批處理-directory(-d)<路徑>指定路徑。把<路徑>加入到搜索源文件的路徑中結(jié)束:quit直接退出gdbdetach放棄連接Shell命令:shell

3、ng>啟動(dòng)一個(gè)shell執(zhí)行,不用退出GDB就可以執(zhí)行一個(gè)shell命令make[make-args]使用[make-args]進(jìn)行make相當(dāng)于`shellmakemake-args'GDB命令命令輸入技巧:可以把一個(gè)gdb命令縮寫(xiě)成開(kāi)頭幾個(gè)字母,如果這沒(méi)有二意性你可以直接回車(chē)來(lái)運(yùn)行。如果有不止一個(gè)選擇的話(huà),你還可以使用TAB鍵讓gdb給你完成接下來(lái)的鍵入,或向你顯示可選擇的命令使用helphelp[class]顯示某一類(lèi)命令的列表$helpstatusStatusinquiries.Listofcommands: show--Generic

4、commandforshowingthingsset ??????????with"set" info--GenericcommandforprintingstatusGDB命令(使用help)help[COMMAND]列出某個(gè)命令的使用方法complete列出所有以ARGS開(kāi)頭的命令‘info’(可以縮寫(xiě)為‘i’)用來(lái)顯示你程序的狀態(tài)。比如,你可以使用infoargs列出你程序所接受的命令行參數(shù)。使用inforegisters列出寄存器的狀態(tài)?!畇how’與‘info’相反,‘show’命令用來(lái)顯示gdb自身的狀態(tài)例如showversion顯示版本號(hào),showc

5、opying顯示版權(quán)信息GDB下運(yùn)行程序程序編譯:當(dāng)你在gdb下運(yùn)行程序時(shí),你必須先為gdb準(zhǔn)備好帶有調(diào)試信息的可執(zhí)行文檔。為了高效的調(diào)試一個(gè)程序,你需要使用編譯器來(lái)產(chǎn)生附帶調(diào)試信息的可執(zhí)行代碼這些調(diào)試信息存儲(chǔ)在目標(biāo)文件中;描述了變量數(shù)據(jù)類(lèi)型和函數(shù)聲明,在源文件代碼行和執(zhí)行代碼之間建立聯(lián)系。 為產(chǎn)生調(diào)試信息,當(dāng)你使用編譯器時(shí)指定'-g'選項(xiàng),就可以為你的程序產(chǎn)生帶有調(diào)試信息的可執(zhí)行代碼GDB下運(yùn)行程序Run命令:用于啟動(dòng)你的程序,使用命令前必須先指定你程序的名字(用gdb的命令行參數(shù))或使用‘file’命令,來(lái)指定文件名工作路徑:每次用‘run’命令來(lái)運(yùn)行程序時(shí),程序?qū)⒗^承g(shù)

6、db的當(dāng)前工作目錄。而gdb的工作目錄是從它的父進(jìn)程繼承而來(lái)的(一般是shell)。但你可以自己使用‘cd’命令指定工作目錄。gdb的工作目錄就是它去尋找某些文件或信息的途徑。`cdDIRECTORY'把gdb的工作目錄設(shè)為DIRECTORY`pwd'打印輸出當(dāng)前目錄GDB下運(yùn)行程序調(diào)試一個(gè)已經(jīng)運(yùn)行的程序:attach這個(gè)命令把一個(gè)已經(jīng)運(yùn)行的進(jìn)程(在gdb外啟動(dòng))連接入gdb,以便調(diào)試。PROCESS-ID是進(jìn)程號(hào)。當(dāng)然要使用‘a(chǎn)ttach’命令的話(huà),你的操作系統(tǒng)環(huán)境必須支持進(jìn)程。另外你還要有向此進(jìn)程發(fā)信號(hào)的權(quán)力。交叉調(diào)試環(huán)境:目標(biāo)板:gdbserve

7、r:port–attach調(diào)試端:targetremoteip:port停止調(diào)試:detachGDB下運(yùn)行程序調(diào)試一個(gè)多線(xiàn)程的程序:GDB會(huì)自動(dòng)提示新線(xiàn)程創(chuàng)建thread各線(xiàn)程間進(jìn)行切換infothreads查看已經(jīng)存在的線(xiàn)程無(wú)論gdb何時(shí)中斷了你的程序(因?yàn)橐粋€(gè)斷點(diǎn)或是一個(gè)信號(hào)),它自動(dòng)選擇信號(hào)或斷點(diǎn)發(fā)生的線(xiàn)程為當(dāng)前線(xiàn)程。gdb將用一個(gè)格式為'[SwitchingtoSYSTAG]'的消息來(lái)向你報(bào)告。GDB下運(yùn)行程序調(diào)試多進(jìn)程:GDB對(duì)調(diào)試使用'fork'系

當(dāng)前文檔最多預(yù)覽五頁(yè),下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁(yè),下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動(dòng)畫(huà)的文件,查看預(yù)覽時(shí)可能會(huì)顯示錯(cuò)亂或異常,文件下載后無(wú)此問(wèn)題,請(qǐng)放心下載。
2. 本文檔由用戶(hù)上傳,版權(quán)歸屬用戶(hù),天天文庫(kù)負(fù)責(zé)整理代發(fā)布。如果您對(duì)本文檔版權(quán)有爭(zhēng)議請(qǐng)及時(shí)聯(lián)系客服。
3. 下載前請(qǐng)仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時(shí)可能由于網(wǎng)絡(luò)波動(dòng)等原因無(wú)法下載或下載錯(cuò)誤,付費(fèi)完成后未能成功下載的用戶(hù)請(qǐng)聯(lián)系客服處理。