国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

調(diào)試工具_(dá)gdb使用教程

這篇具有很好參考價值的文章主要介紹了調(diào)試工具_(dá)gdb使用教程。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

目錄

一. 環(huán)境介紹

二. gdb指令

1. 啟動調(diào)試

2. 退出調(diào)試

3. 查看代碼?

4. 運(yùn)行程序

?5. 打斷點

6. 查看斷點

7.? 刪除斷點

8.? 逐過程調(diào)試

9. 逐語句調(diào)試

10.? 查看變量

11. 常顯示變量(監(jiān)視)

12. 取消常顯示變量

13. 運(yùn)行到指定行

14. 執(zhí)行完當(dāng)前函數(shù)的剩余部分

15. 執(zhí)行到下一個斷點

16. 關(guān)閉斷點

17. 開啟斷點

18. 不同文件中打斷點

19. 查看局部變量

20. 修改變量的值

21. 查看函數(shù)的調(diào)用堆棧


GDB(GNU調(diào)試器)是一個功能強(qiáng)大的調(diào)試工具,提供了很多命令用于調(diào)試程序。下面我們來看一下如何使用gdb調(diào)試。

一. 環(huán)境介紹

我們要知道我們的程序有兩種,一種是release 還有一種是 debug 版本的,我們的調(diào)試只有咋 debug 版本下才可以調(diào)試,我們只需要在編譯的時候在后面加 -g 選項就是添加調(diào)試信息,也就是debug 版本。

二. gdb指令

下面我們就來看一下我們的 gdb 的指令

測試程序:

#include<stdio.h>


int addToToop(int top)
{
  int ret = 0;
  for(int i = 1; i <= top; ++i)
    ret += i;

  return ret;
}


int main()
{
  printf("開始調(diào)試\n");
  int sum = 20;
  int ret =  addToToop(sum);
  printf("%d\n", ret);
  printf("結(jié)束調(diào)試\n");
  return 0;
}

1. 啟動調(diào)試

指令:gdb + 可執(zhí)行程序文件名

[lxy@hecs-165234 test9]$ gdb test_debug?
GNU gdb (GDB) Red Hat Enterprise Linux 7.6.1-120.el7
Copyright (C) 2013 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law. ?Type "show copying"
and "show warranty" for details.
This GDB was configured as "x86_64-redhat-linux-gnu".
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>...
Reading symbols from /home/lxy/test/test9/test_debug...done.
(gdb)?

?如果變成上面這樣那么就以及成功了

2. 退出調(diào)試

指令:quit / q

(gdb) quit
[lxy@hecs-165234 test9]$?
?


(gdb) q
[lxy@hecs-165234 test9]$?

3. 查看代碼?

指令:list / l? (后面也可以加 數(shù)字 表示查看該行和上下行的部分代碼)

(gdb) l
10?? ?
11?? ? ?return ret;
12?? ?}
13?? ?
14?? ?
15?? ?
16?? ?
17?? ?int main()
18?? ?{
19?? ? ?printf("開始調(diào)試\n");
(gdb) l 0
1?? ?#include<stdio.h>
2?? ?
3?? ?
4?? ?
5?? ?int addToToop(int top)
6?? ?{
7?? ? ?int ret = 0;
8?? ? ?for(int i = 1; i <= top; ++i)
9?? ? ? ?ret += i;
10?? ?
(gdb)?

gdb 會記住上一次的指令,所以我們在查看的時候我們可以 l 0 然后之一回車

指令: l + 函數(shù)名(顯示函數(shù)代碼)

(gdb) l addToToop
1?? ?#include<stdio.h>
2?? ?
3?? ?
4?? ?
5?? ?int addToToop(int top)
6?? ?{
7?? ? ?int ret = 0;
8?? ? ?for(int i = 1; i <= top; ++i)
9?? ? ? ?ret += i;
10?? ?
(gdb)?
11?? ? ?return ret;
12?? ?}
13?? ?
14?? ?
15?? ?
16?? ?
17?? ?int main()
18?? ?{
19?? ? ?printf("開始調(diào)試\n");
20?? ? ?int sum = 20;
(gdb)?

4. 運(yùn)行程序

指令:run / r

(gdb) r
Starting program: /home/lxy/test/test9/test_debug?
開始調(diào)試
210
結(jié)束調(diào)試
[Inferior 1 (process 7520) exited normally]
Missing separate debuginfos, use: debuginfo-install glibc-2.17-326.el7_9.x86_64
(gdb)?

?5. 打斷點

指令:break / b 后面 + 行號

(gdb) break 21
Breakpoint 1 at 0x4005c4: file test.c, line 21.
(gdb) b 22
Breakpoint 2 at 0x4005d1: file test.c, line 22.
(gdb)?

6. 查看斷點

指令:info? breakpoints / info b / i b

(gdb) info breakpoints
Num ? ? Type ? ? ? ? ? Disp Enb Address ? ? ? ? ? ?What
1 ? ? ? breakpoint ? ? keep y ? 0x00000000004005c4 in main at test.c:21
2 ? ? ? breakpoint ? ? keep y ? 0x00000000004005d1 in main at test.c:22
(gdb) info b
Num ? ? Type ? ? ? ? ? Disp Enb Address ? ? ? ? ? ?What
1 ? ? ? breakpoint ? ? keep y ? 0x00000000004005c4 in main at test.c:21
2 ? ? ? breakpoint ? ? keep y ? 0x00000000004005d1 in main at test.c:22
(gdb) i b
Num ? ? Type ? ? ? ? ? Disp Enb Address ? ? ? ? ? ?What
1 ? ? ? breakpoint ? ? keep y ? 0x00000000004005c4 in main at test.c:21
2 ? ? ? breakpoint ? ? keep y ? 0x00000000004005d1 in main at test.c:22
(gdb)?

?斷點信息查看介紹:

  • NUM:斷點編號
  • Type:斷點類型
  • Disp:....
  • Enb:斷點是否有效(可以將斷點設(shè)置為無效)
  • 后面的就不做介紹了

7.? 刪除斷點

指令:delete / d + 斷點編號

(gdb) i b
Num ? ? Type ? ? ? ? ? Disp Enb Address ? ? ? ? ? ?What
1 ? ? ? breakpoint ? ? keep y ? 0x00000000004005c4 in main at test.c:21
2 ? ? ? breakpoint ? ? keep y ? 0x00000000004005d1 in main at test.c:22
(gdb) delete 1
(gdb) i b
Num ? ? Type ? ? ? ? ? Disp Enb Address ? ? ? ? ? ?What
2 ? ? ? breakpoint ? ? keep y ? 0x00000000004005d1 in main at test.c:22
(gdb) d 2
(gdb) i b
No breakpoints or watchpoints.
(gdb)?

8.? 逐過程調(diào)試

指令:next / n

我們先將斷點打到 20 行的位置,然后我們開始逐語句調(diào)試

(gdb) b 20
Breakpoint 3 at 0x4005bd: file test.c, line 20.
(gdb) r
Starting program: /home/lxy/test/test9/test_debug?
開始調(diào)試

Breakpoint 3, main () at test.c:20
20?? ? ?int sum = 20;
(gdb) n
21?? ? ?int ret = ?addToToop(sum);
(gdb) n
22?? ? ?printf("%d\n", ret);
(gdb) n
210
23?? ? ?printf("結(jié)束調(diào)試\n");
(gdb) n
結(jié)束調(diào)試
24?? ? ?return 0;
(gdb) n
25?? ?}
(gdb) n
0x00007ffff7a2f555 in __libc_start_main () from /lib64/libc.so.6
(gdb) n

9. 逐語句調(diào)試

指令:step / s

我們還是在 20 行的位置打斷點,然后我們逐語句調(diào)試,我們會進(jìn)入到函數(shù)里面

(gdb) r
Starting program: /home/lxy/test/test9/test_debug?
開始調(diào)試

Breakpoint 3, main () at test.c:20
20?? ? ?int sum = 20;
(gdb) s
21?? ? ?int ret = ?addToToop(sum);
(gdb) s
addToToop (top=20) at test.c:7
7?? ? ?int ret = 0;
(gdb) s
8?? ? ?for(int i = 1; i <= top; ++i)
(gdb) s
9?? ? ? ?ret += i;
(gdb)?

10.? 查看變量

指令:print / p + 變量名

Starting program: /home/lxy/test/test9/test_debug?
開始調(diào)試

Breakpoint 3, main () at test.c:20
20?? ? ?int sum = 20;
(gdb) print sum
$4 = 0
(gdb) n
21?? ? ?int ret = ?addToToop(sum);
(gdb) print sum
$5 = 20
(gdb) p sum
$6 = 20
(gdb)?

11. 常顯示變量(監(jiān)視)

指令:display + 變量名

我們將斷點打到 21 行(函數(shù)所在行),然后我們 s 進(jìn)入函數(shù), 我們 display 查看變量 i?

Starting program: /home/lxy/test/test9/test_debug?
開始調(diào)試

Breakpoint 4, main () at test.c:21
21?? ? ?int ret = ?addToToop(sum);
(gdb) s
addToToop (top=20) at test.c:7
7?? ? ?int ret = 0;
(gdb) n
8?? ? ?for(int i = 1; i <= top; ++i)
(gdb) display i
1: i = 4195472
(gdb) n
9?? ? ? ?ret += i;
1: i = 1
(gdb) n
8?? ? ?for(int i = 1; i <= top; ++i)
1: i = 1
(gdb) n
9?? ? ? ?ret += i;
1: i = 2
(gdb)?

我們的常顯示變量的前面還有一個數(shù)字,這個就是常顯示變量的 編號?

12. 取消常顯示變量

指令:undisplay + 常顯示變量的編號

還是根據(jù)上面的 顯示 i 變量,然后我們?nèi)∠@示 i 變量?

1: i = 2
(gdb) undisplay 1
(gdb)?

13. 運(yùn)行到指定行

這次我們在進(jìn)入到 函數(shù)中去 然后我們使用指令到指定行

指令:until?+ 行號

開始調(diào)試

Breakpoint 4, main () at test.c:21
21?? ? ?int ret = ?addToToop(sum);
(gdb) s
addToToop (top=20) at test.c:7
7?? ? ?int ret = 0;
(gdb) s
8?? ? ?for(int i = 1; i <= top; ++i)
(gdb) until 11
addToToop (top=20) at test.c:11
11?? ? ?return ret;
(gdb)?
?

14. 執(zhí)行完當(dāng)前函數(shù)的剩余部分

我們繼續(xù)到 該函數(shù)中去

指令:finish(執(zhí)行完當(dāng)前函數(shù)剩余的所有代碼,并且在下一個函數(shù)執(zhí)行前一行停止)

(gdb) run
Starting program: /home/lxy/test/test9/test_debug?
開始調(diào)試

Breakpoint 4, main () at test.c:21
21?? ? ?int ret = ?addToToop(sum);
(gdb) s
addToToop (top=20) at test.c:7
7?? ? ?int ret = 0;
(gdb) s
8?? ? ?for(int i = 1; i <= top; ++i)
(gdb) finish
Run till exit from #0 ?addToToop (top=20) at test.c:8
0x00000000004005ce in main () at test.c:21
21?? ? ?int ret = ?addToToop(sum);
Value returned is $8 = 210
(gdb)?

15. 執(zhí)行到下一個斷點

我們多打幾個斷點 20 21 22 ,然后我們 continue

指令:continue

(gdb) i b
Num ? ? Type ? ? ? ? ? Disp Enb Address ? ? ? ? ? ?What
4 ? ? ? breakpoint ? ? keep y ? 0x00000000004005c4 in main at test.c:21
?? ?breakpoint already hit 1 time
(gdb) b 20
Breakpoint 5 at 0x4005bd: file test.c, line 20.
(gdb) b 22
Breakpoint 6 at 0x4005d1: file test.c, line 22.
(gdb) i b
Num ? ? Type ? ? ? ? ? Disp Enb Address ? ? ? ? ? ?What
4 ? ? ? breakpoint ? ? keep y ? 0x00000000004005c4 in main at test.c:21
?? ?breakpoint already hit 1 time
5 ? ? ? breakpoint ? ? keep y ? 0x00000000004005bd in main at test.c:20
6 ? ? ? breakpoint ? ? keep y ? 0x00000000004005d1 in main at test.c:22

斷點打好了


(gdb) run
Starting program: /home/lxy/test/test9/test_debug?
開始調(diào)試

Breakpoint 5, main () at test.c:20
20?? ? ?int sum = 20;
(gdb) continue
Continuing.

Breakpoint 4, main () at test.c:21
21?? ? ?int ret = ?addToToop(sum);
(gdb) continue
Continuing.

Breakpoint 6, main () at test.c:22
22?? ? ?printf("%d\n", ret);
(gdb) continue
Continuing.
210
結(jié)束調(diào)試
[Inferior 1 (process 7634) exited normally]
(gdb)?

16. 關(guān)閉斷點

指令:disable + 斷點編號

我們現(xiàn)在有 20 21 22 三個斷點,我們現(xiàn)在關(guān)閉掉 21 我們 i b 查看一下

(gdb) i b
Num ? ? Type ? ? ? ? ? Disp Enb Address ? ? ? ? ? ?What
4 ? ? ? breakpoint ? ? keep y ? 0x00000000004005c4 in main at test.c:21
?? ?breakpoint already hit 1 time
5 ? ? ? breakpoint ? ? keep y ? 0x00000000004005bd in main at test.c:20
?? ?breakpoint already hit 1 time
6 ? ? ? breakpoint ? ? keep y ? 0x00000000004005d1 in main at test.c:22
?? ?breakpoint already hit 1 time
(gdb) disable 4
(gdb) i b
Num ? ? Type ? ? ? ? ? Disp Enb Address ? ? ? ? ? ?What
4 ? ? ? breakpoint ? ? keep n ? 0x00000000004005c4 in main at test.c:21
?? ?breakpoint already hit 1 time
5 ? ? ? breakpoint ? ? keep y ? 0x00000000004005bd in main at test.c:20
?? ?breakpoint already hit 1 time
6 ? ? ? breakpoint ? ? keep y ? 0x00000000004005d1 in main at test.c:22
?? ?breakpoint already hit 1 time
(gdb)?

17. 開啟斷點

指令:enable + 斷點編號

(gdb) i b
Num ? ? Type ? ? ? ? ? Disp Enb Address ? ? ? ? ? ?What
4 ? ? ? breakpoint ? ? keep n ? 0x00000000004005c4 in main at test.c:21
?? ?breakpoint already hit 1 time
5 ? ? ? breakpoint ? ? keep y ? 0x00000000004005bd in main at test.c:20
?? ?breakpoint already hit 1 time
6 ? ? ? breakpoint ? ? keep y ? 0x00000000004005d1 in main at test.c:22
?? ?breakpoint already hit 1 time
(gdb) enable 4
(gdb) i b
Num ? ? Type ? ? ? ? ? Disp Enb Address ? ? ? ? ? ?What
4 ? ? ? breakpoint ? ? keep y ? 0x00000000004005c4 in main at test.c:21
?? ?breakpoint already hit 1 time
5 ? ? ? breakpoint ? ? keep y ? 0x00000000004005bd in main at test.c:20
?? ?breakpoint already hit 1 time
6 ? ? ? breakpoint ? ? keep y ? 0x00000000004005d1 in main at test.c:22
?? ?breakpoint already hit 1 time
(gdb)?

18. 不同文件中打斷點

指令:break / b + 文件名 + :+ 行號

這里就不做演示了....(沒有多個文件)

19. 查看局部變量

指令:info locals / i locals

我們打斷點到 22?行,然后我們查看主函數(shù)里面的變量

(gdb) run
Starting program: /home/lxy/test/test9/test_debug?
開始調(diào)試

Breakpoint 7, main () at test.c:22
22?? ? ?printf("%d\n", ret);
(gdb) info locals
sum = 20
ret = 210
(gdb) i locals
sum = 20
ret = 210
(gdb)?

20. 修改變量的值

指令:set var + (變量名 =?值)

我們到 21 行里面的函數(shù)里面,然后直接修改i的值為200,然后查看 i 的值

(gdb) run?
Starting program: /home/lxy/test/test9/test_debug?
開始調(diào)試

Breakpoint 8, main () at test.c:21
21?? ? ?int ret = ?addToToop(sum);
(gdb) s
addToToop (top=20) at test.c:7
7?? ? ?int ret = 0;
(gdb) s
8?? ? ?for(int i = 1; i <= top; ++i)
(gdb) p i
$13 = 4195472
(gdb) set var i = 200
(gdb) p i
$14 = 200
(gdb)?

21. 查看函數(shù)的調(diào)用堆棧

指令:bt

我們先到 mian 函數(shù)里面查看調(diào)用堆棧,然后在進(jìn)入到我們自己寫的函數(shù)的里面繼續(xù)查看調(diào)用堆棧,然后我們在 finish 結(jié)束掉我們自己的函數(shù),然后查看調(diào)用堆棧

(gdb) run?
Starting program: /home/lxy/test/test9/test_debug?

Breakpoint 9, main () at test.c:19
19?? ? ?printf("開始調(diào)試\n");
(gdb) bt
#0 ?main () at test.c:19
(gdb) s
開始調(diào)試
20?? ? ?int sum = 20;
(gdb) s
21?? ? ?int ret = ?addToToop(sum);
(gdb) s
addToToop (top=20) at test.c:7
7?? ? ?int ret = 0;
(gdb) s
8?? ? ?for(int i = 1; i <= top; ++i)
(gdb) bt
#0 ?addToToop (top=20) at test.c:8
#1 ?0x00000000004005ce in main () at test.c:21

(gdb) s
9?? ? ? ?ret += i;
(gdb) finish
Run till exit from #0 ?addToToop (top=20) at test.c:9
0x00000000004005ce in main () at test.c:21
21?? ? ?int ret = ?addToToop(sum);
Value returned is $15 = 210
(gdb) bt
#0 ?0x00000000004005ce in main () at test.c:21
(gdb)?

上面的就是 gdb 里面常用的命令,我們下期見~?文章來源地址http://www.zghlxwxcb.cn/news/detail-550176.html

到了這里,關(guān)于調(diào)試工具_(dá)gdb使用教程的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • Linux: GDB 調(diào)試工具

    Linux: GDB 調(diào)試工具

    ? 目錄 概念: Linux 下 debug 和 release 的區(qū)別: GDB 的使用 :? 激活和進(jìn)入工作模式: ?查看文件的內(nèi)容: 運(yùn)行調(diào)試的文件:? 打斷點:? ?查看斷點: 刪除斷點: 禁用斷點: ?編輯 重新打開斷點: ?逐過程 與 逐語句: 查看變量/監(jiān)視功能:? 常顯示:? 運(yùn)行至下一個斷點

    2024年02月19日
    瀏覽(19)
  • Linux的調(diào)試工具 - gdb(超詳細(xì))

    Linux的調(diào)試工具 - gdb(超詳細(xì))

    程序的發(fā)布方式有兩種,debug模式和release模式 Linux gcc/g++出來的二進(jìn)制程序,默認(rèn)是release模式 要使用gdb調(diào)試,必須在源代碼生成二進(jìn)制程序的時候, 加上 -g 選項,發(fā)布成debug模式 注: 如果沒有斷點,程序?qū)⑦\(yùn)行到底 注: 單條執(zhí)行需要在調(diào)試啟動的情況下進(jìn)行,需要先打斷點

    2024年02月07日
    瀏覽(20)
  • 【linux】git和gdb調(diào)試工具

    【linux】git和gdb調(diào)試工具

    這兩個步驟用于識別提交代碼的身份,一個你的名字,一個你的郵箱 開啟本地倉庫 克隆本地倉庫成功 我們將這個倉庫拷到了111目錄底下. 我們發(fā)現(xiàn)少了一個.gitignore,因為.gitignore是隱藏文件,所以使用ls -la查看 用于查看提交狀態(tài) 上面可以看到提交人的信息,以及時間,以及提

    2024年02月22日
    瀏覽(21)
  • Linux開發(fā)工具之調(diào)試器gdb

    程序的發(fā)布方式有兩種,debug模式和release模式 Linux gcc/g++出來的二進(jìn)制程序,默認(rèn)是release模式 要使用gdb調(diào)試,必須在源代碼生成二進(jìn)制程序的時候, 加上 -g 選項 ? 所以一份代碼若要被調(diào)試必須是debug模式,但是在linux下我們編譯代碼的時候默認(rèn)為release模式,要想讓我們的代碼

    2024年02月07日
    瀏覽(22)
  • Linux中的C/C++語言調(diào)試工具 GDB

    Linux中的C/C++語言調(diào)試工具 GDB

    GDB(GNU Debugger)是一個功能強(qiáng)大的調(diào)試器,用于調(diào)試和分析程序的執(zhí)行過程。它是GNU項目的一部分,可以在多個操作系統(tǒng)上使用,包括Linux、Unix和Windows。 GDB主要用于調(diào)試編譯后的 可執(zhí)行文件 ,它可以幫助程序開發(fā)人員識別和修復(fù)代碼中的錯誤、追蹤程序的執(zhí)行流程、觀察和

    2024年02月08日
    瀏覽(21)
  • 【Linux操作系統(tǒng)】深入了解系統(tǒng)編程gdb調(diào)試工具

    【Linux操作系統(tǒng)】深入了解系統(tǒng)編程gdb調(diào)試工具

    在軟件開發(fā)過程中,調(diào)試是一個非常重要的步驟。無論是在開發(fā)新的軟件還是維護(hù)現(xiàn)有的代碼,調(diào)試都是解決問題的關(guān)鍵。對于Linux開發(fā)者來說,GDB是一個非常有用的調(diào)試工具。在本文中,我們將探討Linux中使用GDB進(jìn)行調(diào)試的方法和技巧。 GDB是GNU調(diào)試器的縮寫,是一個功能強(qiáng)

    2024年02月14日
    瀏覽(24)
  • Linux | 調(diào)試器GDB的詳細(xì)教程【純命令行調(diào)試】

    Linux | 調(diào)試器GDB的詳細(xì)教程【純命令行調(diào)試】

    學(xué)習(xí)了【vim】知道了如何 編輯 一個代碼文本 學(xué)習(xí)了【gcc】知道了如何 編譯 一個代碼文本 學(xué)習(xí)了【make/Makefile】知道了如何 自動化構(gòu)建 一個代碼文本 但是如何對一段代碼去進(jìn)行調(diào)試呢,此時就要使用到 Linux下的調(diào)試器gdb 了。對于這個調(diào)試器來說,不像是VS中那樣的圖形化界

    2024年02月02日
    瀏覽(28)
  • [linux開發(fā)工具]小程序--進(jìn)度條、調(diào)試器 - gdb

    [linux開發(fā)工具]小程序--進(jìn)度條、調(diào)試器 - gdb

    ?? 作者簡介 :RO-BERRY ?? 學(xué)習(xí)方向:致力于C、C++、數(shù)據(jù)結(jié)構(gòu)、TCP/IP、數(shù)據(jù)庫等等一系列知識 ?? 日后方向 : 偏向于CPP開發(fā)以及大數(shù)據(jù)方向,歡迎各位關(guān)注,謝謝各位的支持 第一種情況 執(zhí)行結(jié)果如下: 可以看到程序先執(zhí)行printf再執(zhí)行sleep 第二種情況 執(zhí)行結(jié)果如下: 在這里

    2024年02月22日
    瀏覽(21)
  • Linux工具【2】(調(diào)試器gdb、項目自動化構(gòu)建工具make/Makefile)

    Linux工具【2】(調(diào)試器gdb、項目自動化構(gòu)建工具make/Makefile)

    在上一篇文章中介紹了Linux中的編輯器vim與編譯器gcc與g++: 戳我看vim與gcc詳解哦 在本篇文章中將繼續(xù)來介紹Linux中的工具: 調(diào)試器gdb與項目自動化構(gòu)建工具make/Makefile 在Windows環(huán)境中,我們使用vs時,常常會逐過程與逐語句地調(diào)試代碼以更高效地尋找到錯誤的位置。在Linux中也

    2024年02月12日
    瀏覽(24)
  • Linux系統(tǒng)下的程序調(diào)試工具——GDB(GNU Debugger)

    GCC(GNU Compiler Collection)是GNU開發(fā)的編程語言編譯器,它支持多種編程語言,如C、C++、Objective-C、Fortran、Ada和Go等。 以下是一些常用的操作: 啟動GDB并加載程序 設(shè)置斷點 在代碼中的某一行設(shè)置斷點,當(dāng)程序運(yùn)行到這一行時,GDB會暫停執(zhí)行。 例如,如果你在 main.c 文件的第

    2024年04月13日
    瀏覽(32)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包