我正在使用Visual Studio 2008在Windows上构建Qt 4.5应用程序。每当我在 Debug模式下运行应用程序然后将其关闭时,Visual Studio都会在输出 Pane 中打印以下内容:
输出报告了数百个这样的块。我在使用Qt 4的Model / View框架时特别注意到了这一点。 Qt实际上是否存在内存泄漏,或者在某些情况下Visual Studio错误地报告了泄漏?
最佳答案
调试Windows运行时提供了内存泄漏信息。您的程序可以进行交互和配置。
大括号{696512}
中的数字是分配订单号。如果此数字始终相同,则可以通过将该数字传递给 _CrtSetBreakAlloc
来为此分配设置一个断点。再次在调试器中运行程序,并且在分配泄漏的内存后调试器将停止。
首先在main中调用此函数。如果数量不总是相同,请尝试使用减少的代码重现内存泄漏,直到数量始终相同。
有关更多信息,请参见Memory Leak Detection Enabling。