You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何配置Visual Studio 2015调试选项以显示全部或大部分变量值

解决Visual Studio 2015调试时变量无法查看值的问题

刚好碰到过类似的情况,大概率确实是编译器优化把变量的调试信息给“优化没了”,按下面的步骤调整设置就能解决:

  • 关闭编译器优化
    右键你的项目 → 选择「属性」→ 展开「配置属性」→ 点击「C/C++」→ 找到「优化」选项,把它改成禁用(/Od)。不管是Debug还是Release模式,只要开启了优化,编译器就可能合并、甚至删除一些它认为“冗余”的变量,导致调试时看不到值,禁用优化就能保留所有变量的原始信息。

  • 确保生成完整的调试符号
    同样在项目属性里:

    1. 「C/C++」→「常规」,把「调试信息格式」设置为程序数据库(/Zi)(如果需要支持编辑后继续调试,就选程序数据库用于编辑并继续(/ZI));
    2. 切换到「链接器」→「调试」,把「生成调试信息」设为是(/DEBUG)
      这两步能让编译器生成足够的调试符号文件,VS才能识别并显示变量的值。
  • 针对Release模式的额外调整
    如果你是在Release模式下调试(不建议长期这么做,但临时排查问题需要的话),除了上面的设置,还要检查:

    • 「C/C++」→「代码生成」,把「基本运行时检查」设为默认或者两者(/RTC1)
    • 「C/C++」→「优化」里的「内联函数扩展」改成禁用(/Ob0),避免内联函数里的变量被优化掉。
  • 临时应急方案
    如果个别顽固变量还是看不到,你可以给变量加个volatile关键字(比如volatile int my_counter;),强制编译器不对这个变量做任何优化。不过这只是临时手段,别在正式代码里大面积用,会影响性能。另外,有时候清理项目(菜单「生成」→「清理解决方案」)再重新编译,也能解决缓存调试信息导致的异常。

内容的提问来源于stack exchange,提问作者jojo_Aero_smith_the_dummy

火山引擎 最新活动