如何在Visual Studio 2005中禁用内存泄漏日志记录?

4
我想知道是否有一种方法可以禁用Visual Studio(如果有影响,是2005版)在结束进程时进行的内存泄漏记录。当我调试大量代码时,我可能只想测试特定功能,然后再研究泄漏问题。我的问题是,当我终止进程时,泄漏日志记录需要很长时间。有时我需要等待一分钟以上才能完成所有转储操作。
非常感谢。

如果你的程序包含对 _CrtDumpMemoryLeaks 的调用,那么请注释掉它。 - smerlin
1个回答

3

当您的程序在调试模式下编译时,将调用函数CrtDumpMemoryLeaks。您可以通过调用该函数来关闭此行为。

_CrtSetDbgFlag(0);

这里描述了它的用法(链接)。但是修复那些内存泄漏仍然是明智的选择。通常情况下,一些大的静态对象会占用所有内存。您可以通过将其封装在一个类中,在getter函数中创建对象并在第一次访问时进行重构,从而避免使用在cpp文件中声明的静态对象。现在您可以在程序退出时安全地删除静态对象,作为主方法中的最后一次调用。这样可以修复内存泄漏问题,并且您的报告将更短。

您的,

Alois Kraus


事实上,我总是会修复内存泄漏问题,只是我喜欢选择进行修复的时间。遗憾的是,在我的工作环境中,情况很少像在 main 方法结束时删除静态变量这么简单。我们有超过 500 个相互交互的模块,大多数情况下,一个特定的模块(DLL)会导致所有麻烦。通常我使用第三方软件来调试泄漏问题,因为它们的输出通常对我来说更有用(至少比 Visual Studio 更好)。非常感谢您的回答。 - Francois Charron

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接