作者sirusi (印)
看板C_and_CPP
标题[问题] gdb中的watchpoint 使用step没有反应
时间Thu May 11 14:25:42 2017
大家好 我在数周前开始学习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
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 140.112.77.29
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/C_and_CPP/M.1494483949.A.568.html
※ 编辑: sirusi (140.112.77.29), 05/11/2017 15:34:04
1F:推 iLinux: 我尝试步骤1,2都很顺利,会不会是vm造成?我是实体电脑 05/11 19:37
2F:→ iLinux: 不过我会使用next,而不是step,这样就不会跳进square() 05/11 19:38
谢谢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
3F:推 iLinux: 各种情况都顺利地监控 i ,真的没遇到啥问题。 05/11 20:27
4F:→ sirusi: 谢谢iL大提供资讯! 看来直接灌Linux的电脑没这问题 05/12 00:37