我使用Visual Studio 2017开发C ++ DLL,但遇到一些内存问题。我想使用Application Verifier对其进行调试,但是运行我的DLL的应用程序(第三方应用程序)也被堆破坏了。因此,如果我激活Application Verifier,则在加载DLL之前,应用程序将崩溃。
是否可以对应用程序验证程序说仅处理DLL或模块的堆损坏?如果没有,是否可以使用其他工具调试我的DLL?
答案 0 :(得分:1)
为什么不编写一个简单的包装应用程序?我必须对导致堆损坏的第三方DLL进行此操作,此损坏随后会使我们的应用程序崩溃。在这种情况下,它在析构函数中,因此我只需要加载和释放它。但是,如果找不到您,则可以为每个导出添加单元测试。
答案 1 :(得分:0)
据我所知,应用程序验证程序使用全局Windows标志来检测泄漏和堆损坏,如下所示。因此,您可以直接使用gflags工具启用此功能。
请查看Microsoft How to use gflags for finding heap corruptions的以下讨论。