linux應用程式設計--GDB除錯
GDB簡介:GDB是GNU釋出的一款功能強大的程式除錯工具,GDB主要完成下面三個方面功能:
一、GDB的使用操作
1.啟動被除錯程式。
2.讓被除錯的程式在指定的位置停住。
3.當程式被停住時,可以檢查程式狀態(如變數值)。
GDB除錯例項:
1.在linux下編寫test.c程式:
1 #include <stdio.h>
2
3 int main()
4 {
5 int i;
6 long result = 0;
7 for(i=0;i<100;i++)
8 {
9 result += i;
10 }
11 printf("result = %d\n",result);
12 return 0;
13 }
View Code
2.編譯生成可執行檔案(-g 使程式具有除錯資訊):
gcc -g test.c -o test
3.啟動GDB(進入GDB模式下):
gdb test
4.在main函式處設定斷點:
break main
5.執行程式(執行到斷點處):
run
6.單步執行:
next
7.繼續執行(執行到下一個斷點處):
c
在linux環境下執行結果如圖:
二、GDB常用命令
1.啟動GDB
1.1.gdb name : 直接開啟名為name的除錯程式進行GDB除錯
1.2.gdb(進入gdb模式)-->file name(開啟名為name的除錯程式進行除錯)
2.list(l) : 檢視程式,可以顯示執行位置後面一段程式,可以根據程式碼進行斷點的設定
3.break(b) name : 在name函式路口處新增斷點
4.break(b) num : 在第num行新增斷點
5.break(b) filename : num : 在filename檔案中的num行新增斷點
6.break(b) num if condition : 如果滿足條件condition,則在第num行的位置設定斷點
7.info break : 檢視程式中所有設定的斷點
8.delete num : 刪除編號為num的斷點
9.run(r) : 開始執行程式
10. next(n) : 單步執行程式(不進入子函式)
11.step(s) : 逐步執行程式(進入子函式)
12.continue(c) : 繼續執行程式,到下一個斷點
13.print(p) variable : 檢視變數variable的值
14.finish : 執行程式,直到當前函式結束
15.watch variable : 對變數variable進行監控
16.quit(q) : 退出GDB模式