我的应用程序使用GLUTesselator来镶嵌复杂的凹多边形。它在我运行普通版本的exe时会随机崩溃,但如果我在VS中开始调试,它永远不会崩溃。我发现这里这个权利这基本上是我的问题:为什么某些事情永远不会崩溃调试器?
The multi-thread debug CRT (/MTd) masks the problem, because, like
Windows并通过 调试器产生的进程,它提供给你的 程序的调试堆,这是 初始化为0XCD模式。 可能在某处使用 未初始化的内存区域作为指针从 堆中取消引用 它;与这两个调试堆你 离开它由于某种原因(也许 因为地址0xbaadf00d和 0xcdcdcdcd还有的有效分配 内存),但与“正常”堆 (也就是常初始化为0)你 得到一个访问冲突,因为你取消引用一个空指针 。
问题是在GLU32.dll发生崩溃,我无法找出为什么它有时试图解引用空指针。当我的多边形变得相当大并且有很多点时,它似乎会这样做。我能做什么?
谢谢
调试器速度较慢,因此在多线程环境中,可能得不到相同的结果。 – 2010-08-02 00:32:49
步骤1:尽可能提高警告等级。第2步:将所有警告视为错误。第3步使代码编译。在修复所有遇到的问题时,只需将警告级别提高即可发现代码中的错误。 – 2010-08-02 03:17:30