大家好 我在數周前開始學習gdb偵錯我的C程式 不過有個問題困擾我一陣子...
我想用watch來讓變數改變時自動跳出來
目前我能成功的方式只有:(欲觀測的變數為i)
1. 設breakpoint → run → watch i→ continue數次
2. start → display i → step或next數次 (但這個方式與watch無關)
然而以下這個我最想要的方式 在電腦上一直試不成功 (跑不出Old及New value)
start → watch i → step或next數次
我有先在stack overflow大量爬文及發問 不過大家也都能用watch + step
參考這個youtube教學影片他也可以用watch + step
(https://www.youtube.com/watch?v=xQ0ONbt-qPs&t=728s)
我用線上gdb工具也可以成功 (http://www.onlinegdb.com/)
但是!!! 我在VM上無論是用Ubuntu 16.04或是Mint 18.1測試都只有1跟2可以,watch +
step都失敗QQ 在另外一台桌電測試一樣失敗(也是Ubuntu 16.04 on VMplayer)
我已經窮途末路想不出新招了,懇請版友指點或測試orz 謝謝
以下附上相關資訊:
使用的code (test.c):
https://gist.github.com/csyuanc/c3650546e752e9c6c4571fdacd7df227
使用continue的方式有成功出現Old value跟New value:
https://gist.github.com/csyuanc/79323167ba1b306420519e8d716cbe95
使用watch+step在我電腦上沒成功過:
(怎麼用都沒出現Old跟New,但在gdb線上工具卻可以)
https://gist.github.com/csyuanc/8c5f30eea02ada725f90b3969200ed68
以下是我的操作方式及作業環境:
使用editior: vim8
Compile:"gcc -g -o test test.c"
gcc版本:5.4.0
gdb版本:7.11.1
OS:Ubuntu 16.04 on VMplayer 12 in Win10