【发布时间】:2011-04-30 01:49:08
【问题描述】:
我有一个在调试版本中运行良好的应用程序,但是当我在发布版本中启动它时,我得到了一个
unhandled Exception at 0x0043b134 in myapp.exe: 0xC0000005:
Access violation while reading at position 0x004bd96c
如果我点击“break”,它会告诉我没有加载任何符号并且无法显示源代码。
在这种情况下我可以做些什么来追查问题?
【问题讨论】:
-
这有时是因为内存问题。通常发布版本在这方面不太宽容。你的程序会不会有内存泄漏、缓冲区溢出等问题?
-
看起来您删除了某些内容,但请尝试使用它。无论如何,您实际上可以发布一些代码吗?如果你不告诉我们你在做什么,我们什么都做不了。
-
应用程序很大——甚至不知道我可以发布哪一部分代码,因为我不知道错误发生在哪里
-
这种情况发生在我身上,我一般都会早早去酒吧……
-
这通常是因为调试版本会初始化你没有显式初始化的变量。当您在发布模式下构建时,这些变量现在包含一个随机值,而不是调试模式为您设置的漂亮的 0 (NULL) 值。要解决此问题,请将编译器警告设置为更高级别并修复所有警告(尤其是那些提到未初始化变量的警告)。 PS。警告通常是一个问题,因此请始终修复它们并将编译器警告级别设置为最高。
标签: c++ debugging crash release