[問題] gdb中的watchpoint 使用step沒有反應

看板C_and_CPP作者 (印)時間8年前 (2017/05/11 14:25), 8年前編輯推噓2(202)
留言4則, 2人參與, 最新討論串1/1
大家好 我在數周前開始學習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 valuehttps://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 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 140.112.77.29 ※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1494483949.A.568.html ※ 編輯: sirusi (140.112.77.29), 05/11/2017 15:34:04

05/11 19:37, , 1F
我嘗試步驟1,2都很順利,會不會是vm造成?我是實體電腦
05/11 19:37, 1F

05/11 19:38, , 2F
不過我會使用next,而不是step,這樣就不會跳進square()
05/11 19:38, 2F
謝謝iL大 謝謝iL大,請問i大指的步驟1,2是我標綠色還是黃色的呢? 我在VM上裝了Ubuntu Mint eOS, watch+step或watch+next都無效 但是用網頁版跟剛剛試了去amazon弄個server就都可以 我也有懷疑是不是VM的問題 希望有大大能幫忙測試> < ※ 編輯: sirusi (140.112.77.76), 05/11/2017 20:09:37

05/11 20:27, , 3F
各種情況都順利地監控 i ,真的沒遇到啥問題。
05/11 20:27, 3F

05/12 00:37, , 4F
謝謝iL大提供資訊! 看來直接灌Linux的電腦沒這問題
05/12 00:37, 4F
文章代碼(AID): #1P50FjLe (C_and_CPP)