1. 背景
- 程序的發(fā)布方式有兩種,debug模式和release模式
- Linux gcc/g++出來的二進(jìn)制程序,默認(rèn)是release模式
-
要使用gdb調(diào)試,必須在源代碼生成二進(jìn)制程序的時(shí)候, 加上 -g 選項(xiàng),發(fā)布成debug模式
2. 開始使用
指令的使用都用下面這個(gè)C語言簡(jiǎn)單小代碼來進(jìn)行演示:
1 #include <stdio.h>
2
3 int SumAdd(int x)
4 {
5 int i=1;
6 int sum=0;
7 for(i=1;i<=x;i++)
8 {
9 sum+=i;
10 }
11 return sum;
12 }
13
14 int main()
15 {
16 printf("%d \n",SumAdd(100));
17 return 0;
18 }
1. list或l 行號(hào):顯示文件源代碼,接著上次的位置往下列,每次列10行。
例:l 0
2. list或l 函數(shù)名:列出某個(gè)函數(shù)的源代碼。
例:l SumAdd
3. r或run: 運(yùn)行程序。
注: 如果沒有斷點(diǎn),程序?qū)⑦\(yùn)行到底
例:r
4. break或b 行號(hào):在某一行設(shè)置斷點(diǎn)
例:b 3
5. n或next:?jiǎn)螚l執(zhí)行(類似vs中的F10)
注: 單條執(zhí)行需要在調(diào)試啟動(dòng)的情況下進(jìn)行,需要先打斷點(diǎn),然后r執(zhí)行到斷點(diǎn)位置
例:n
6. s或step:進(jìn)入函數(shù)調(diào)用(類似vs中的F11)
例:s
7. break 函數(shù)名:在某個(gè)函數(shù)開頭設(shè)置斷點(diǎn)
例:break SumAdd
8. info break或info b:查看斷點(diǎn)信息。
例:info b
9. finish:執(zhí)行到當(dāng)前函數(shù)返回,然后挺下來等待命令
例:finish
10. p 變量:打印變量值。
例:p sum
11. continue或c:從當(dāng)前位置開始連續(xù)而非單步執(zhí)行程序
例:c
12. run或r:從開始連續(xù)而非單步執(zhí)行程序
r
13. delete breakpoints:刪除所有斷點(diǎn)
例;delete breakpoints
14. delete breakpoints n:刪除序號(hào)為n的斷點(diǎn)
delete breakpoints 5
15. disable breakpoints:禁用斷點(diǎn)
例:disable breakpoints
16. enable breakpoints:?jiǎn)⒂脭帱c(diǎn)
例:enable breakpoints
17. display 變量名:跟蹤查看一個(gè)變量,每次停下來都顯示它的值
例:display sum
18. undisplay:取消對(duì)先前設(shè)置的那些變量的跟蹤
例:undisplay
19. until X(行號(hào)):跳至X行
例:until 11
20. breaktrace或bt:查看各級(jí)函數(shù)調(diào)用及參數(shù)
例:bt
21. q或quit:退出gdb
例:q
文章來源:http://www.zghlxwxcb.cn/news/detail-727484.html
(本章完)文章來源地址http://www.zghlxwxcb.cn/news/detail-727484.html
到了這里,關(guān)于Linux的調(diào)試工具 - gdb(超詳細(xì))的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!