欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

Linux調(diào)試工具GDB使用簡易教程

本文所述主要是Linux調(diào)試工具GDB的使用教程,具體如下。

10年積累的成都網(wǎng)站制作、網(wǎng)站建設(shè)經(jīng)驗,可以快速應(yīng)對客戶對網(wǎng)站的新想法和需求。提供各種問題對應(yīng)的解決方案。讓選擇我們的客戶得到更好、更有力的網(wǎng)絡(luò)服務(wù)。我雖然不認(rèn)識你,你也不認(rèn)識我。但先網(wǎng)站設(shè)計后付款的網(wǎng)站建設(shè)流程,更有博望免費網(wǎng)站建設(shè)讓你可以放心的選擇與我們合作。

聲明:本博客內(nèi)容是由本人經(jīng)過實驗樓教程整理得來。

GDB的相關(guān)概念

GDB, 是 The GNU Project Debugger 的縮寫, 是 Linux 下功能全面的調(diào)試工具。GDB 支持?jǐn)帱c、單步執(zhí)行、打印變量、觀察變量、查看寄存器、查看堆棧等調(diào)試手段。在 Linux 環(huán)境軟件開發(fā)中,GDB 是主要的調(diào)試工具,用來調(diào)試 C 和 C++ 程序。

GDB的相關(guān)操作

下面給出一個具有buging.c的程序:

[yqtao@localhost linux]$ cat buging.c 
#include <stdio.h>
int getSum(int n) {
    int sum=0,i;
    for (i=1;i<=n;i++)
        sum+=i;
    return sum;
}
int main(){
    int res=getSum(100);
    printf("1+2+...+100=%d\n",res);
}

如果要調(diào)試程序,則在進(jìn)行g(shù)cc編譯的時候要加上-g參數(shù)

gcc -g -o bugging bugging.c

進(jìn)入gdb:

gdb buging

部分gdb命令:

Linux調(diào)試工具GDB使用簡易教程

// 查看源碼
// 查看第幾行附近
// 可簡寫成l 2
(gdb) list 2   
1    #include <stdio.h>
2    int getSum(int n) {
3        int sum=0,i;
4        for (i=1;i<=n;i++)
5            sum+=i;
6        return sum;
7    }

// 查看main函數(shù)附近的源碼
(gdb) list main
3        int sum=0,i;
4        for (i=1;i<=n;i++)
5            sum+=i;
6        return sum;
7    }
8    int main(){
9        int res=getSum(100);
10       printf("1+2+...+100=%d\n",res);
11   }


// 設(shè)置斷點
// break +n在第幾行設(shè)斷點
(gdb) break 8
Breakpoint 1 at 0x4004fa: file buging.c, line 8.
// break +函數(shù)名 ,在函數(shù)名處設(shè)斷點
(gdb) break getSum
Breakpoint 2 at 0x4004cb: file buging.c, line 3.

//查看斷點信息
(gdb) info breakpoints 
Num   Type      Disp Enb Address      What
1    breakpoint   keep y  0x00000000004004fa in main at buging.c:8
2    breakpoint   keep y  0x00000000004004cb in getSum at buging.c:3

斷點信息中每一項的信息:

1.Num 列代表斷點編號,該編號可以作為 delete/enalbe/disable 等控制斷點命令的參數(shù)
2.Type 列代表斷點類型,一般為 breakpoint
3.Disp 列代表斷點被命中后,該斷點保留(keep)、刪除(del)還是關(guān)閉(dis)
4.Enb 列代表該斷點是 enable(y) 還是 disable(n)
5.Address 列代表該斷點處虛擬內(nèi)存的地址
6.What 列代表該斷點在源文件中的信息

// 刪除斷點
// delete +n 或 d +n
// 如果不加數(shù)字則刪除全部的斷點
(gdb) d 2
(gdb) info breakpoints 
Num   Type      Disp Enb Address      What
1    breakpoint   keep y  0x00000000004004fa in main at buging.c:8

關(guān)閉和啟用斷點:

有時候,我們會遇到這種情況:有些斷點可能暫時不用但又不想刪除,那么可以disable.

disable +n //關(guān)閉斷點
enable +n  //啟動斷點

GDB單步調(diào)試

以本文開頭的buging.c文件為例,進(jìn)行單步調(diào)試。

// 進(jìn)入gdb
[yqtao@localhost linux]$ gdb buging
// 在main()函數(shù)處設(shè)斷點
(gdb) info breakpoints 
// 運行程序
(gdb) run
Breakpoint 1, main () at buging.c:9
9        int res=getSum(100);

注意:我們要進(jìn)入函數(shù)要是用step(s),而單步執(zhí)行next(n),next是不進(jìn)入函數(shù)內(nèi)部的,要區(qū)分兩者的關(guān)系。

(gdb) step
getSum (n=100) at buging.c:4
4        for (i=1;i<=n;i++)
// 查看代碼
(gdb) l
1    #include <stdio.h>
2    int getSum(int n) {
3        int sum=0,i;
4        for (i=1;i<=n;i++)
5            sum+=i;
6        return sum;
7    }
8    int main(){
9        int res=getSum(100);
10       printf("1+2+...+100=%d\n",res);
// 下一步
(gdb) s
5            sum+=i;
// 打印sum的值
// 看到sum是為賦初值的
(gdb) p sum
$1 = 4195633
// info locals
//打印當(dāng)前斷點處所在函數(shù)的所有局部變量的值,不包括函數(shù)參數(shù)。
(gdb) info locals
sum = 4195635
i = 3

其余的一些命令:

finish

執(zhí)行程序到當(dāng)前函數(shù)結(jié)束

continue

執(zhí)行程序到下個斷點

until

until N,執(zhí)行程序到源代碼的某一行

總結(jié)

以上就是本文關(guān)于Linux調(diào)試工具GDB使用簡易教程的全部內(nèi)容,希望對大家有所幫助。感興趣的朋友可以繼續(xù)參閱本站其他相關(guān)專題,如有不足之處,歡迎留言指出。感謝朋友們對本站的支持!

新聞名稱:Linux調(diào)試工具GDB使用簡易教程
標(biāo)題網(wǎng)址:http://chinadenli.net/article46/ppseeg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供響應(yīng)式網(wǎng)站小程序開發(fā)網(wǎng)站營銷、面包屑導(dǎo)航、網(wǎng)站內(nèi)鏈、自適應(yīng)網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

綿陽服務(wù)器托管
免费观看成人免费视频| 中国美女偷拍福利视频| 欧美大黄片在线免费观看| 好吊日在线视频免费观看| 国产精品夜色一区二区三区不卡| 日韩在线视频精品视频| 青青操精品视频在线观看| 日韩中文字幕免费在线视频| 亚洲一区二区三区三州| 精品人妻久久一品二品三品| 国产精品白丝久久av| 国产精品大秀视频日韩精品| 日本深夜福利在线播放| 欧美胖熟妇一区二区三区| 果冻传媒精选麻豆白晶晶 | 在线观看视频成人午夜| 久久99午夜福利视频| 欧美在线观看视频免费不卡| 日韩美成人免费在线视频| 欧美国产日产综合精品| 欧美一级黄片欧美精品| 激情视频在线视频在线视频 | 欧美夫妻性生活一区二区| 欧美加勒比一区二区三区| 加勒比人妻精品一区二区| 日本加勒比中文在线观看| 日本深夜福利视频在线| 日韩欧美三级中文字幕| 国产午夜精品美女露脸视频| 日韩欧美一区二区黄色| 日本人妻中出在线观看| 亚洲超碰成人天堂涩涩| 高清一区二区三区四区五区| 亚洲中文字幕视频在线播放 | 日韩中文无线码在线视频| 精品亚洲香蕉久久综合网| 国产大屁股喷水在线观看视频| 91欧美一区二区三区| 高清亚洲精品中文字幕乱码| 亚洲最大福利在线观看| 亚洲性日韩精品一区二区|