VS 2015 "if" 条件执行到错误的块
VS 2015 "if" condition executing to wrong block
我有一个 if
条件 false
结果执行就像 true
。
没有断点:
有断点:
根据我的经验,有两种常见的情况会导致此问题:
- 运行的DLL与您正在查看的代码不对应。这可以通过确保选中工具 > 选项 > 调试 > "Require source files to exactly match the original version" 来检查。
- 您已使用优化编译在 Release 模式下编译,并且编译器已重新排序代码,因此看起来该行代码正在执行,但实际上并没有(您可以通过切换到 Debug 来验证是否正在发生这种情况模式并重试)。这通常是我在调试时看到此行为的最常见方式。
我有一个 if
条件 false
结果执行就像 true
。
没有断点:
有断点:
根据我的经验,有两种常见的情况会导致此问题:
- 运行的DLL与您正在查看的代码不对应。这可以通过确保选中工具 > 选项 > 调试 > "Require source files to exactly match the original version" 来检查。
- 您已使用优化编译在 Release 模式下编译,并且编译器已重新排序代码,因此看起来该行代码正在执行,但实际上并没有(您可以通过切换到 Debug 来验证是否正在发生这种情况模式并重试)。这通常是我在调试时看到此行为的最常见方式。