1. 程式人生 > >linux應用程式設計--GDB除錯

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模式