成熟丰满熟妇高潮XXXXX,人妻无码AV中文系列久久兔费 ,国产精品一国产精品,国精品午夜福利视频不卡麻豆

您好,歡迎來(lái)到九壹網(wǎng)。
搜索
您的當(dāng)前位置:首頁(yè)Linux 使用gdb調(diào)試C程序

Linux 使用gdb調(diào)試C程序

來(lái)源:九壹網(wǎng)

一、gdb的一些基礎(chǔ)命令

l:顯示代碼
l n:跳轉(zhuǎn)到當(dāng)前代碼頁(yè)的第n行的代碼
l filename.c :n:跳轉(zhuǎn)到filename.c文件的第n行代碼
b 行號(hào):加斷點(diǎn)
info break:查看斷點(diǎn)信息
delete 斷點(diǎn)編號(hào):刪除斷點(diǎn)
r,運(yùn)行程序
n,單步執(zhí)行
c,繼續(xù)執(zhí)行,遇到斷點(diǎn)停止執(zhí)行
p,打印
s,進(jìn)入函數(shù)
finish,退出函數(shù)
q,退出gdb

二、調(diào)試示例

先寫一個(gè)main.c程序,該程序用來(lái)循環(huán)輸出從鍵盤輸入的字符串,直到遇到"end"結(jié)束循環(huán):

編譯并運(yùn)行main.c:

發(fā)現(xiàn)和我們的預(yù)期并不一樣,在輸入"end"之后并沒(méi)有結(jié)束循環(huán),通過(guò)Ctrl+c結(jié)束這個(gè)進(jìn)程。

從上圖可以看出目前并不可以進(jìn)行調(diào)試,之所以能打出一些信息,是因?yàn)檫@些信息是gdb打印出來(lái)的,而main程序還沒(méi)有執(zhí)行,下面的這句話

  1. gdb去調(diào)試Debug版本:

(1)編譯和跟蹤

按照gcc -o main main.c -g去編譯main.c生成可執(zhí)行程序main,并用gdb去跟蹤main程序:

(2)顯示所編寫的代碼

通過(guò)gdb指令l顯示代碼

一次只能顯示10行代碼。

(3)設(shè)置斷點(diǎn)

語(yǔ)法形式:break 行號(hào),break可以簡(jiǎn)寫為b

將斷點(diǎn)加到第13行:

可以繼續(xù)下斷點(diǎn):

查看加了哪些斷點(diǎn)info break

刪除斷點(diǎn)delete Num

刪除第2個(gè)斷點(diǎn):

(4)運(yùn)行程序進(jìn)行調(diào)試

輸入run,可以簡(jiǎn)寫為r,按回車:

當(dāng)前程序執(zhí)行到了13行停止。

輸入n,讓程序單步執(zhí)行:

從上圖可以看出輸入了字符串"hello",然后程序運(yùn)行到了17行的if語(yǔ)句。

這時(shí),我們輸入p buff來(lái)查看一些buff中的內(nèi)容:

可以看到,當(dāng)前buff中存放的是字符串"hello\n"。

繼續(xù)輸入n單步執(zhí)行:

當(dāng)前程序又執(zhí)行到了13行。

我們繼續(xù)單步執(zhí)行,這次輸入字符串"end",程序跳轉(zhuǎn)到17行的if語(yǔ)句:

此時(shí),我們?cè)佥斎?code>p buff來(lái)查看一些buff中的內(nèi)容:

可以看到,當(dāng)前buff中存放的是字符串"end\n",這和我們輸入的字符串"end"并不相同。

因此,再繼續(xù)執(zhí)行時(shí),程序依然會(huì)進(jìn)入循環(huán):

此時(shí),我們就通過(guò)調(diào)試發(fā)現(xiàn)了代碼中存在的問(wèn)題。

  1. 退出gdb

輸入q退出gdb,此時(shí)會(huì)提示如果要退出會(huì)殺死剛剛的main程序,是否要退出,輸入y表示退出,按回車就退出gdb。

退出gdb之后,剛剛的main程序也就結(jié)束了:

  1. 通過(guò)調(diào)試結(jié)果修正代碼

將strcmp()改為strncmp():

此時(shí),我們?cè)偃ゾ幾gmain.c,執(zhí)行main程序,結(jié)果如下:

因篇幅問(wèn)題不能全部顯示,請(qǐng)點(diǎn)此查看更多更全內(nèi)容

Copyright ? 2019- 91gzw.com 版權(quán)所有 湘ICP備2023023988號(hào)-2

違法及侵權(quán)請(qǐng)聯(lián)系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市萬(wàn)商天勤律師事務(wù)所王興未律師提供法律服務(wù)