应用程序在编译出错后执行时关闭,但在调试时正常工作!

问题描述:

好吧。这就是问题所在。只是。应用程序在编译出错后执行时关闭,但在调试时正常工作!

我有一个用SDL和OpenGL制作的应用程序。 SDL会在图形之外打开一个额外的窗口(这是控制台)。当我执行我得到3输出错误,控制台告诉我。它被关闭(图形化)。

但我知道发生这种情况时收到一个SIGSEGV信号(不知道如何捕获它),它出现在我的IDE(代码::块),同时调试。但是这次没有出现,一切正常。但是,当执行崩溃..

什么...

我可以期待什么样的错误?有时会关闭,有时不会。如何知道我得到了什么样的问题?

+2

您有一个未初始化的变量,它在调试期间获取固定值,但在发布版本中完全是随机的。 – 2011-05-26 20:06:19

+0

如果编译时出现错误,如何执行应用程序? – ildjarn 2011-05-26 20:07:18

+0

哎!是。可能是我有未初始化的变量!是! 。这是调试和执行之间的区别!对!!非常感谢 – darkgaze 2011-05-27 08:51:24

SIGSEGV是一个段错误,您试图访问您的进程无法访问的内存。

假设你在UNIXy系统上,你应该能够将程序转储到核心转储,然后在调试器中查看核心转储;或者,使用像Valgrind这样的内存调试器来查明导致此问题的内存管理问题。