VC程序调试int变量的值

eisman 2009-10-28 01:03:14
问一个比较傻的问题:
我有个定义在类里的 unsigned int 变量,调试程序的时候设置了断点检查该变量的当前值。
在断点行,当鼠标移动到该变量上显示它的值为:268907160,F10下一步显示它的值为 513。
可是就在这个断点处我用 printf 打印出的值为 1 或 用其他条件判断语句如 if (变量==1) 也对。
为什么鼠标在上面显示的值那么奇怪呢?其他程序不是这样啊。有人碰到过这个问题么?
...全文
176 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
eisman 2009-10-29
  • 打赏
  • 举报
回复
@alicehyxx: 你说的非常对。优化关掉就解决问题了。多谢!
lsvine 2009-10-28
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 alicehyxx 的回复:]
工程怎么新建的??

打开工程属性,看看是否输出了调试信息,是否进行了优化。

变量值不对,很多时候是因为进行了优化或调试信息没有生成。

[Project]-->[*** Properties]打开属性对话框,C/C++项下,General和Optimization两项。
[/Quote]
支持
周成风 2009-10-28
  • 打赏
  • 举报
回复
工程怎么新建的??

打开工程属性,看看是否输出了调试信息,是否进行了优化。

变量值不对,很多时候是因为进行了优化或调试信息没有生成。

[Project]-->[*** Properties]打开属性对话框,C/C++项下,General和Optimization两项。
eisman 2009-10-28
  • 打赏
  • 举报
回复
@happyparrot
代码没有什么特别的,而且贴几行也看不出问题,这个变量从其他类的一个方法获得数据,
我也没法把整个工程贴在这里。关键是printf和条件判断都得到正确的值,而用鼠标看就不是,很奇怪。

@WecanHuang
我做了,变量是有赋值的。我一开始也以为是没有初始化的原因。
问题是,就像上面说的,printf和条件判断都得到正确的值,我用鼠标看的也正好是printf和条件判断得出正确值的地方。因为以前习惯用鼠标看,发现值不对,一开始以为是显示的地址,但 513 作为地址也不对。百思不得其解。
WecanHuang 2009-10-28
  • 打赏
  • 举报
回复
你在断点的下一行,把鼠标移上去看看是不是有问题
你都还没给他赋值,鼠标移上去当然是还没初始化的乱数了
快乐鹦鹉 2009-10-28
  • 打赏
  • 举报
回复
为什么不把代码贴出来呢???

16,551

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Creator Browser
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧