VS 继续调试会话意味着内存泄漏,关闭应用程序后?

Posted

技术标签:

【中文标题】VS 继续调试会话意味着内存泄漏,关闭应用程序后?【英文标题】:VS continues on Debug session means memory leak, after closing the application? 【发布时间】:2014-08-21 15:10:29 【问题描述】:

如果 Visual Studio 保持在 Debug 会话中并且没有停止调试以切换到 Edit 会话,我可以说在我已经从程序中关闭它之后 必须在我的程序中存在一些内存泄漏本身,尤其是在 C# 条件下?

【问题讨论】:

这通常意味着您启动了一个您忘记终止的线程。 IsBackground 属性为 false 的一种。与往常一样,使用调试器来解决这个问题。 Debug + Windows + Threads 告诉你发生了什么。 【参考方案1】:

我不这么认为。即使在用户要求程序退出后,没有内存泄漏的程序仍然可以运行。这可能是由程序或库中的错误引起的。该错误可能是线程仍在后台运行,或者代码正在等待从未发生过的事情。在 Visual Studio 中,您可以按 Ctrl+Break 或单击“Debug -> Break All”查看哪些代码或线程仍在运行。

当然,从另一个角度来看,你可以认为一个不会退出的程序正在泄漏内存,因为除非用户干预并杀死它,否则它会占用系统内存。

【讨论】:

以上是关于VS 继续调试会话意味着内存泄漏,关闭应用程序后?的主要内容,如果未能解决你的问题,请参考以下文章

几百次运行后 fopen() 内存泄漏

如何用VS工具检测内存泄露

使用VS2013编写c++程序时怎样检测内存泄漏

如何从托管 C# 代码跟踪 CRT 调试内存泄漏输出的来源?

在 VS C++ 6.0 中,哪些调试工具可以很好地找到内存泄漏的位置?

.showsPhysics的内存泄漏