【问题标题】:Memory leak detection via attach to process通过附加到进程的内存泄漏检测
【发布时间】:2018-04-14 08:46:37
【问题描述】:

我正在开发一个在更大的应用程序中运行的 Visual Studio 2008 插件 DLL。我可以在调试中构建它,附加到进程,并逐步执行我的代码。我现在遇到的主要问题是内存泄漏检测。

通常我使用 VLD,但这似乎只在我从 Visual Studio 启动可执行文件时给我输出。 VLD 没有通过附加到进程给我任何输出,即使在终止托管我的插件的主程序之后也是如此。

我可以构建自己的测试容器,但这需要一些时间,而且还不能涵盖大部分功能。

有没有简单的方法通过附加到进程来进行内存泄漏检测?

我尝试过 _CrtDumpMemoryLeaks(),但是它不起作用,它没有检测到像这样的简单行

int * memoryleak = new int[5000000];

在 Visual Studio 中直接运行时通常会检测到

任何帮助表示赞赏,谢谢!

【问题讨论】:

    标签: c++ visual-studio-2008 memory-leaks attach-to-process


    【解决方案1】:

    您可以使用 umdh 实用程序来找出您的 dll 中的内存泄漏。 UMDH 包含在 Windows 调试工具中。有关更多详细信息,请查看以下链接- https://docs.microsoft.com/en-us/windows-hardware/drivers/debugger/using-umdh-to-find-a-user-mode-memory-leak

    如果您想使用具有易于使用的 GUI 来设置内存泄漏检测和泄漏报告的内存泄漏工具,那么您可以从 Software Verify 选择 C++ Memory Validator 工具。虽然它是一个付费工具,但是您可以查看它的试用版来评估它。

    【讨论】:

      猜你喜欢
      • 2012-07-16
      • 2021-09-01
      • 2012-01-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多