0

我使用 Visual Studio 2017 开发了一个 C++ DLL,但我遇到了一些内存问题。我想使用Application Verifier对其进行调试,但运行我的 DLL(第三方应用程序)的应用程序也被堆损坏。因此,如果我激活应用程序验证程序,应用程序会在我的 DLL 加载之前崩溃。

是否可以对应用程序验证器说只处理 DLL 或模块的堆损坏?如果没有,有没有办法用其他工具调试我的 DLL?

4

2 回答 2

1

为什么不写一个简单的包装应用程序?我不得不为导致堆损坏的第三方 DLL 执行此操作,从而导致我们的应用程序崩溃。在这种情况下,它在析构函数中,所以我只需要加载和释放它。但是,如果您没有找到它,您可以为每个导出添加单元测试。

于 2019-03-19T12:56:46.920 回答
0

据我所知,应用程序验证程序使用全局窗口标志来检测泄漏和堆损坏。所以你可以直接使用 gflags 工具来启用这个功能。

请查看 Microsoft如何使用 gflags 查找堆损坏的以下讨论。

于 2019-02-27T09:18:30.813 回答