情深不寿 avatar

断点调试时变量值和预期不一样

用断点调试代码,停在某一行的时侯,发现一个变量的值跟预期完全不一样。往上翻了半天代码,也没找到这个变量是在哪被改掉的。代码里用这个变量的地方有好几处,不知道是哪一步出了问题。断点调试只看到结果,怎么才能追踪到一个变量是什么时候被改成错误值的?
举报
风险提示:用户发表的所有内容仅代表其个人观点,不代表本站的立场,请勿用作决策之依据。
所属分类 电脑编程
回答数量 1
问题状态 讨论中
参与回答

有经验或补充信息?可以围绕问题本身给出清晰、具体的答案。

我要回答

热门回答

共 1 条回答
  • 丶长烟 avatar
    2026-05-20 进行了回答
    这事儿我也常遇到,变量莫名其妙变了却找不到凶手。给你个狠招:直接对这个变量设置数据断点(也叫监视点),让程序在变量被修改的瞬间自动停下来,当场抓获 culprit。VS 里在调试时打开"局部变量"窗口,右键变量选"当值更改时中断";GDB 用 `watch` 命令。比起人肉翻代码,让工具帮你盯梢效率高多了。另外也可以临时给变量的 setter 或修改处加个断点,或者把变量改成 property 方便追踪。要是多线程环境还得小心竞态条件,那种 bug 更阴间。