星期一, 11月 22, 2004

gdb 的簡單用法

使用 gdb 來替程式偵錯前,程式需先以編譯器重編過,並要加上 -g 的旗標編譯器才會將 debug 的資訊加進去程式,使我們可以使用變數名稱來檢視資料。例如:
$ cc -g -o debug1 debug1.c
$ gdb debug1

接下來是 gdb 的用法
1. 執行程式;會執行到錯誤發生或程式結束為止
(gdb) run

2. 當錯誤發生時,要看程式如何執行到此一位置的
(gdb) backtrace

(gdb) bt

(gdb) where

3. 檢查變數 j
(gdb) print j
或 檢查陣列元素 a[0]
(gdb) print a[0]
或 檢查陣列連續五個元素
(gdb) print a[0]@5

4. 設定中斷點在第二十行
(gdb) break 20

5. 繼續執行到下一個中斷點
(gdb) continue

(gdb) cont

6. 當到達中斷點時,自動顯示變數內容
(gdb) display array[0]@5

7. 配合第 6. ,顯示完變數內容後,再觸發某些命令,一行一個,以 end 結尾
(gdb) commands
>continue
>end

8. info 可看到哪些中斷點與顯示被啟動
(gdb) info break

(gdb) info display

9. 停用中斷點或顯示
(gdb) disable break 1

(gdb) disable display 1

10. runtime 改變變數或指令
(gdb) set variable n = n+1

沒有留言: