1

几天前我发布了有关智能指针内存泄漏的信息。现在我能够找出哪些对象正在泄漏内存,但我无法弄清楚它们从哪里泄漏内存。

我正在使用与此处提到的相同代码 检测引用计数对象中的内存泄漏

我已经阅读了很多评论,但没有一个能正确解释。我尝试使用宏FILELINE,它们都打印文件和 refmanager 类的行。

有没有调试这个问题的好方法。请也指出一些很好的例子。

4

2 回答 2

1

最简单的方法可能是在 Windows 上使用 Valgrind(在 Linux 和 Mac 上)和一些类似的工具。

您还可以在智能指针的构造函数中获取回溯(在 Linux 和 Mac 上使用函数 backtrace() 函数)或 Windows 上 dbghelp.dll 中的类似函数,然后将回溯保存在分配的某处并删除回溯解除分配。然后在退出打印所有剩余的回溯。

于 2012-10-15T19:44:49.370 回答
0

在 Windows 上,您可以使用 Visual Studio 2015 中的新内存诊断工具:

于 2016-02-01T13:44:06.107 回答