我的应用程序仅在发布模式下以某种方式关闭。而且我什至看不到调用堆栈。我想这一切都以某种方式坏掉了。
它在调试模式下工作正常。可能是什么问题?或者我怎样才能找出问题所在?
另一个问题是,我想尝试使用未初始化变量的调试模式。我的意思是,据我所知,在调试模式下,所有变量都已正确初始化(对吗?)。但不是在发布模式。所以我想尝试没有自动初始化模式的调试模式。这可能吗?
我正在研究 VS2010、c++、directX、Windows 7。谢谢。
尝试禁用优化并重试
99%的时候是你的一些变量没有初始化,仔细检查。
在调试模式下,变量没有被初始化,它们被填充了一个值,这个值被选择为在使用时给你带来麻烦(非零,高到足以经常导致溢出)并且是可识别的。
我的应用程序仅在发布模式下以某种方式关闭
您需要先确定它是哪种关机。它是崩溃、中止还是关闭?在所有可能的出口点上放置断点(包括常规的,如
WM_CLOSE
)和不规则的,如_abort
.
如果没有遇到断点,至少在这里复制调试输出,看看主线程是如何终止的(什么结果代码或任何可以提供更多信息的东西)。
总结调试和发布之间的差异:
/RTC
选项)/O
选项)_DEBUG
vs NDEBUG
)(由预处理器/预处理器定义控制)您可以一项一项地调整您的发布模式设置以匹配调试设置,直到“自动关机”停止。然后你就会知道要寻找什么样的问题。