gpt4 book ai didi

c++ - Visual Studio - 更正优化构建中的不同行为

转载 作者:行者123 更新时间:2023-11-30 02:08:46 26 4
gpt4 key购买 nike

我有一个正在进行的项目。我最近将它切换到完全优化的 Release模式,只是为了了解一些事情在 Debug模式下将如何执行。然而,在这样做时,我注意到有一些违规行为。在我的特殊情况下,我有一个 Sprite ,其 alpha 值在 Release模式下与 Debug模式下不同(更透明)。

为了检查我的发现,我制作了 Release模式构建选项的拷贝,但关闭了优化(确保删除了 DEBUG 和其他相关的预处理器选项)并且它正确执行。优化过程中的某些内容会修改我的系统的行为。这可能是因为有些变量我没有在我的类中的某个地方初始化。

我的问题是,除了手动梳理我的代码之外,是否有其他方法来确保一切都正确初始化?我检查了弹出的警告,但所有警告都与 int 到 float/float 到 int 的转换以及可能丢失数据和枚举限定符有关,而且它们都与我的 sprite 上的 alpha 无关。

如果它有所作为,我会使用 Visual Studio 2010。

最佳答案

这种类型的东西很难调试。我建议你一个一个地替换优化,直到找到导致异常的那个。然后,您可以通过将优化逐一应用于每个翻译单元(文件)来进一步缩小问题范围。

处理此问题的另一种方法本质上是数据跟踪。分析代码以确定哪些数据项正在控制您的 alpha。找到写入数据的每个语句。在这些语句上放置断点或跟踪。然后确定可执行文件中发布数据与调试数据不同的第一个点。

关于c++ - Visual Studio - 更正优化构建中的不同行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6180514/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com