如何利用gdb除錯程式?

2022-03-27 01:20:00 字數 1154 閱讀 7746

程式的大體意思就是各乙個陣列賦值,然後輸出來

程式已經寫在了上面,下面我們就來看一下如何產生帶有除錯資訊的編譯檔案,這裡我們要使用gcc的-g引數,用於在編譯檔案中加入一些除錯資訊。

發現加了-g和沒有加-g,生成的檔案大小不一樣的!!!!你會發現,加上g後,產生的編譯檔案體積也會增加,所以在我們做軟體開發時,加入除錯資訊應該在初期設計時,後期時,就應用去掉這些除錯資訊,當然如果想保留軟體自身的除錯功能,就要保留了。

下面來說一些常用的gdb除錯命令

list 或是l 用於列出源程式

每打入一次list或是l將顯示10行源**,或是指定列出的行號來檢視源程式 「list 行號」

使用此引數時,要確保源程式沒有被移除或移動位置,否則無法檢視。

break/b 設定斷點,可指定斷點行號,或是函式名等。

info

break

顯示斷點資訊

run 執行程式

print 檢視程式執行時對應表示式的和變數的值

next 單步執行程式,但不進入函式呼叫

step 單步執行程式,且進行函式呼叫

continue 繼續執行函式,直至函式結束或是下乙個斷點

使用gdb命令執行編譯檔案時,就可以看到如下資訊,像其他的工具一樣帶有一些說明文字,包含一些版權、版本及其他說明,最後的(gdb)就是其環境提示符,類似於shell提示符,用於提醒使用者,在此後面輸入命令。

上面的圖就是程式沒有錯誤時執行的結果!

接下倆我把源程式中給陣列賦值的一條語句改為scanf("%d",a[i]);沒有加&取位址符

再次除錯程式

list此時可以看附近的**!

如何使用gdb除錯程式

gdb 這就算是進入了gdb環境了。那麼我們使用命令run執行一下看看結果如何?starting program home zhxfan debugme program received signal sigsegv,segmentation fault.0x08048341 in index to...

GDB除錯程式

gdb的三個功能 1 啟動被除錯的程式 2 設定斷點 3 設定斷點之後可以檢查程式的狀態 1.編譯生成可執行檔案 注意 g 除錯選項 gcc g tst.c o tst 2.啟動gdb gdb tst 3.在main函式處設定斷點 break main 4.執行程式 run5.利用 更加豐富的 gd...

gdb除錯程式

除錯是每個程式設計師都會面臨的問題.如何提高程式設計師的除錯效率,更好更快地定位程式中的問題從而加快程式開發的進度,是大家共同面對的問題.可能windows使用者順口就會說出 用vc唄 它提供了設定斷點,單步跟蹤等的圖形介面,使除錯起來直觀易用.但linux使用者可能要生悶氣了 o 難道我們linu...