VS 2015 "if" 条件执行到错误的块

VS 2015 "if" condition executing to wrong block

我有一个 if 条件 false 结果执行就像 true

没有断点:

有断点:

根据我的经验,有两种常见的情况会导致此问题:

  1. 运行的DLL与您正在查看的代码不对应。这可以通过确保选中工具 > 选项 > 调试 > "Require source files to exactly match the original version" 来检查。
  2. 您已使用优化编译在 Release 模式下编译,并且编译器已重新排序代码,因此看起来该行代码正在执行,但实际上并没有(您可以通过切换到 Debug 来验证是否正在发生这种情况模式并重试)。这通常是我在调试时看到此行为的最常见方式。