gdb的偵錯方法

2013-11-30 3:09 pm
這是一個簡單的無窮迴圈
有人可以教我gdb debug 檢查的步驟嗎
謝謝
#include<stdio.h>
main()
{
int x,y;
for(x=0;x<10;x++)
{
y=y+x;
if(y>10)
x--;
}
}

回答 (3)

2013-12-06 8:03 pm
✔ 最佳答案
假設你程式叫test.c,已經安裝gcc和gdb,命令提示字元的工作目錄和test.c相同

1.編譯加入除錯資訊
gcc -g test.c -o test.exe
-g:加入除錯資訊
-o:指定輸出檔案的檔名

2.用gdb除錯
gdb test.exe
對test.exe除錯,此時你可以對gdb下命令

3.指定中斷點
break 4
你可以用list指令看原始碼,然後用break指定中斷點在哪一列,也可以指定停在哪個函式

4.開始執行程式
run

上面的步驟比較固定,再來就看你要怎麼除錯了。

5.觀察變數
display x
display y
display會自動顯示變數值,你也可以用print x暫時觀察

6.一列一列執行
next
執行完會印出下一列要執行的程式,你可以觀察流程和變數值是怎麼變化的
直接按enter代表執行上一個指令,你不用一直打next
你也可以用step指令,執行到你寫的函式時會進入函式

7.離開gdb
quit

參考資料
http://www.study-area.org/goldencat/debug.htm
http://www.study-area.org/cyril/opentools/opentools/x1253.html
http://www.cmlab.csie.ntu.edu.tw/~daniel/linux/gdb.html
https://sourceware.org/gdb/current/onlinedocs/gdb/
2013-12-07 3:51 am
還是要去 http://aaashops。com 品質不錯,老婆很喜歡。
凰倣呜哔侫咘
2013-12-01 7:12 pm
try the following website with how to use gdb debugs an infinite loop:
http://www.unknownroad.com/rtfm/gdbtut/gdbinfloop.html


收錄日期: 2021-04-30 12:54:18
原文連結 [永久失效]:
https://hk.answers.yahoo.com/question/index?qid=20131130000016KK00878

檢視 Wayback Machine 備份