2012-04-02 101 views
1

我正在调试生成堆问题的dll。我正在启用堆页面。尝试该DLL的许多版本,调试工程,发布最小尺寸的作品,但发布最大速度失败。使用“最大化速度”而不是“最小化大小”的堆问题

我知道调试和发布之间的一些区别,所以我正在检查可能的初始化问题。但事实上,我的DLL工作在释放最小化的大小,但不是在释放最大大小可以给我更多的信息,我犯了什么类型的错误?

生成的两个二进制文件有什么主要区别? (当然不包括可执行文件的大小和执行速度)。

P.S. :我的dll包含很多QT小部件。我不知道它是否可以帮助,但如果这些对象出现常见错误...

+0

没有代码,您的解决方案可能无法解决;只有广泛的(明显的)提示可以给出。 – orlp 2012-04-02 12:27:50

+0

你的错误信息是什么? ©发生问题时,堆栈状态如何?可能是双重删除或缓冲区溢出? – Jem 2012-04-02 12:41:16

回答

3

一般性问题的一般答案:听起来好像可能会出现某种内存损坏。寻找或甚至检测到内存损坏的困难之一是,只需对代码稍作修改,它的症状就会出现/消失。这包括调试/发布版本和各种版本优化。

How to debug heap corruption errors?的答案给出了关于调试内存损坏的很好的概述。