如何使用gdb除錯程式

2021-04-23 07:51:48 字數 811 閱讀 1255

(gdb) 

這就算是進入了gdb環境了。那麼我們使用命令run執行一下看看結果如何?

starting program: /home/zhxfan/debugme

program received signal sigsegv, segmentation fault.

0x08048341 in index_to_the_moon (ary=0xbfbe5924) at debugme.c:7

7                       ary[i]=i;

這段清單表明了錯誤型別 為segmentation fault,發生在debugme.c的第7行**ary[i]=i;處,錯誤出現的位址為0x08048341。

既然出現了錯誤,那麼我們就設定斷點進行除錯吧。我們在main函式的第一行設定斷點,即檔案的第11行:

break 11

出現如下資訊

breakpoint 1 at 0x8048366: file debugme.c, line 11.

不用解釋了吧?

然後就是單步跟蹤了。首先使用run命令執行至斷點處

starting program: /home/zhxfan/debugme

breakpoint 1, main () at debugme.c:12

12              index_to_the_moon(intary);

然後採用step命令單步跟蹤

index_to_the_moon (ary=0xbfd8aad4) at debugme.c:6

6               for(i=0;i

使用GDB除錯程式

gdb是gnu發布的一款功能強大的程式除錯工具。gdb主要完成下面三個方面的功能 1.啟動被除錯程式 2.讓被除錯的程式在指定的位置停住 3.當程式被停住時,可以檢查程式狀態 如變數值 假如要對程式test.c進行除錯,除錯流程為 1.編譯生成可執行檔案 gcc g test.c o test 2....

使用GDB除錯程式

上回話說 使用makefile來組織源 這回簡單地介紹下如何使用gdb來除錯我們的程式 關於gdb的其它應用將在後續的章節中逐漸深入。首先需要肯定一點,gdb是個功能異常強大的除錯工具,其本身只能執行於字元模式,但是當前眾多基於gui的偵錯程式 ide,無論是自由軟體還是商業軟體,絕大多數都使用gd...

如何利用gdb除錯程式?

程式的大體意思就是各乙個陣列賦值,然後輸出來 程式已經寫在了上面,下面我們就來看一下如何產生帶有除錯資訊的編譯檔案,這裡我們要使用gcc的 g引數,用於在編譯檔案中加入一些除錯資訊。發現加了 g和沒有加 g,生成的檔案大小不一樣的!你會發現,加上g後,產生的編譯檔案體積也會增加,所以在我們做軟體開發...