您好,登錄后才能下訂單哦!
這篇文章主要為大家展示了“Linux下如何調(diào)試c語(yǔ)言”,內(nèi)容簡(jiǎn)而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領(lǐng)大家一起研究并學(xué)習(xí)一下“Linux下如何調(diào)試c語(yǔ)言”這篇文章吧。
指令:
1.編譯:gcc -o xxx xxx.c
2.生成可調(diào)試文件:gcc -o xxx -g xxx.c
3.調(diào)試程序:gdb xxx
4.執(zhí)行程序:
start 從程序第一步開(kāi)始執(zhí)行
run 直接運(yùn)行程序到結(jié)束或者斷點(diǎn)處
5.設(shè)置斷點(diǎn):break line(行數(shù))或函數(shù)名或者條件表達(dá)式
break 6 在第6行設(shè)置斷點(diǎn)
break Swap 在Swap函數(shù)入口設(shè)置斷點(diǎn)
break 6 if i == 10 在第6行設(shè)置斷點(diǎn),要求i == 10
6.刪除斷點(diǎn):
clear 刪除所有斷點(diǎn)
clear 行號(hào) : 刪除這行的斷點(diǎn)
clear 函數(shù)名 : 刪除該函數(shù)的斷點(diǎn)
7.info 查看斷點(diǎn)
8.c 繼續(xù)執(zhí)行到下一個(gè)斷點(diǎn)
9.print +變量 打印變量值
10.n 下一步
11.q 退出調(diào)試
一、我們以“交換兩個(gè)數(shù)的值”為例進(jìn)行調(diào)試,代碼如下:
//我們這里使用第三個(gè)值進(jìn)行交換,是為了方便在調(diào)試過(guò)程中查看變量的值 void Swap(int* number1,int* number2) { int tmp=(*number1); (*number1)=(*number2); (*number2)=tmp; } int main() { int x=2; int y=3; Swap(&x,&y); retrun 0; }123456789101112131415
二、按下圖步驟做好調(diào)試前的準(zhǔn)備:
三、調(diào)試內(nèi)容(請(qǐng)按照以下序號(hào)順序輸入指令): ①運(yùn)行程序:(gdb) run
根據(jù)上圖顯示,程序正常運(yùn)行并退出
②設(shè)置斷點(diǎn):(gdb) break 12(行數(shù)或者函數(shù)名)
③開(kāi)始調(diào)試:(gdb) run
根據(jù)上圖顯示,程序從斷點(diǎn)處開(kāi)始執(zhí)行,即第12行處。
④打印變量值:(gdb) print x(變量名)
根據(jù)上圖顯示,打印第11行的變量x,顯示值為2
⑤繼續(xù)執(zhí)行下一步:(gdb) n
⑥跳轉(zhuǎn)到下一個(gè)斷點(diǎn):(gdb) c
根據(jù)上圖顯示,在第6行設(shè)置了第二個(gè)斷點(diǎn)(第一個(gè)斷點(diǎn)在第12行),輸入“c”,直接跳轉(zhuǎn)到第6行,即第二個(gè)斷點(diǎn)處。
⑦繼續(xù)執(zhí)行,直到退出函數(shù):(gdb) n
⑧打印Swap函數(shù)執(zhí)行后變量的值: (gdb) print x (gdb) print y
⑨退出調(diào)試:(gdb) q
以上是“Linux下如何調(diào)試c語(yǔ)言”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。