gdb 調試程序

一. 何爲gdb網絡

    1. UNIX及UNIX-like下的調試工具。或許,各位比較喜歡那種圖形界面方式的,像VC、BCB等IDE的調試,但若是你是在 UNIX平臺下作軟件,你會發現GDB這個調試工具相比於VC、真的優勢是具備修復網絡斷點以及恢復連接等功能,比BCB的圖形化調試器有更強大的功能。所謂「尺有所短,寸有所長」就是這個道理。ide

    2. 總的來講,GDB, 又稱GNU調試器,是用來幫助調試咱們程序的工具工具

二. gdb 有何用測試

    1. GDB能夠幹如下幾件事:
        1.1. 給程序設置(特定條件下的)斷點
        1.2. 當程序停在斷點處時,咱們查看全部變量、寄存器的值
        1.3. 當程序停在斷點處時,咱們除了能查看全部變量、寄存器的值之外,還能在不改變源代碼的狀況下改變這些值(這個確實屌)優化

    2. GDB 經常使用命令spa

 

三. gdb的使用3d

    1. gbd 基本語法調試

         1.1. 先寫一個test.c code

1 #include <stdio.h>
2 int main()
3 {
4     int a = 1;
5     int b = a;
6     printf("a = %d, b = %d\n",a, b);
7     return 0;
8 
9 }
View Code

         1.2. 編譯文件blog

gcc -o test test.c  -g

               1.2.1. 加上-g選項之後,gcc在編譯是會作如下額外的操做:

                     1. 建立符號表,符號表包含了程序中使用的變量名稱的列表。

                     2. 關閉全部的優化機制,以便程序執行過程當中嚴格按照原來的C代碼進行。

        1.3. 進入gdb

 

         1.4. 經常使用命令使用

             1.4.1. start

                  1. 用start開始單步調試,程序從main開始

 

 

            1.4.2. 單步執行<n>

  

 

             1.4.3. gdb斷點調試

 

             1.4.4. gdb 設置觀察點

 

     2. 使用gdb 定位段錯誤

        2.1. 編寫一個帶有段錯誤的程序

 1 #include <stdio.h>
 2 #include <stdlib.h>
 3 
 4 int main(int argc, char *argv[])
 5 {
 6     int a =1;
 7     int b = 0;
 8     printf("a/b = %d\n",a/b);
 9     return 0;
10 }
View Code

           2.1.1. 編譯程序,及執行

        2.2. 測試流程

        

相關文章
相關標籤/搜索