作者dryman (dryman)
看板EE_DSnP
標題Re: [建議] HW1.2.P1 break point @ line 102 的問題
時間Mon Oct 5 12:19:00 2009
分享一下整理好的gdb指令:
n next: 單步執行,但遇到副程式不會單步而是一口氣執行完
s step: 也是單步執行,但遇到副程式會進去一步步做
c continue: 繼續執行到break point為止
until: 直接跑完一個while迴圈
return: 終止該副程式(frame),並返回到副程式呼叫點
finish: 執行完這個副程式並回到呼叫點,在你的程式深入到c lib時很有用
進去副程式時在gdb的文件中會說這是進到下一層frame
up 將焦點移到上一層frame(副程式呼叫處)
down 回到下一層frame
frame 顯示當前行數、frame資訊、進入副程式點等等
backtrace 顯示上層所有frame的資訊
注意這並不是控制程式執行的指令,只是幫助你了解是從哪裡呼叫frame而已
p 變數 : 就是print變數
watch 變數 : 監看某個變數,當它改變值時就break
display 變數 : 下過display這個指令後,之後每次n or s 都會顯示出這個變數的值
變數指令必須在程式已經創造變數時才可以去讀
假如我還沒進過frame,我就不能監看這個frame裡面的區域變數
將break point設在區域變數都宣告好的地方
然後watch 變數,使用continue來和到底是在哪些地方改變變數的
或是用display,然後用step一步一步地看(免得跳過子迴圈)
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 220.136.177.225
1F:推 ric2k1:推, 順便改一下標題... :) 10/05 16:24