调试时使用 属性 getter 触发不正确的断点 Windows Store App with Release Configuration

Incorrect Breakpoints Triggered with Property getters when Debugging Windows Store App with Release Configuration

当我在发布配置中调试用 C++/CX 编写的应用程序时,我注意到一些奇怪的行为。仅供参考,以防相关我使用的是 Visual Studio 2013 社区(更新 4)。

当我在一些 属性 getter 上放置断点时,例如 Type1::Label::get() 我注意到它似乎在 Type2::Label::get() 将是调用但中断,就好像调用了 Type1 方法一样。我担心可能有什么问题导致了这个问题,但我很困惑为什么这只会在发布配置中出现。

该应用似乎在其他方面正常运行。是否有可以解释此问题的已知问题?

这可能是代码优化导致的正确行为。

如果两个 get 方法的编译代码相同,那么优化器通常会将两个函数指向同一位置,而不是在最终汇编中复制代码。

发布版本几乎总是经过优化的。调试版本几乎从不优化。

优化使发布版本比调试版本更快、更小,但也更难调试。