C#、C++/CLI 和非托管 C++ 应用的内存分析工具

3

我正在开发一个使用C#、C++/CLI和非托管C++库的64位应用程序。

我特别关注于查找非托管代码中的内存泄漏问题。

我已经尝试使用ANTS性能分析器,虽然它对于C#应用程序非常好用,但对于非托管代码的内存泄漏问题提供的信息不多。

我知道PurifyPlus是一款很好的用于C++的工具,并且我发现它也支持.NET应用程序。然而,不幸的是,它不支持64位应用程序。

我期待着看看是否有人在这方面有更好的建议。

非常感谢!


如果在64位模式下发生泄漏,那么在32位模式下也会发生泄漏。 - Hans Passant
@Hans Passant - 问题是我拥有的C++库已经编译为64位,因此我只能使用这些库构建64位应用程序。并且我也无法访问C++源代码。 - Snehal
2个回答

2
如果您有源代码,可以使用Visual Leak Detector。但是,您可能需要在VC++(DLL项目)中调试.NET可执行文件。在VC++项目中,除了设置调试目标之外,还要选择“混合”模式调试。这与C#中的“启用非托管调试”非常相似。

1
你可以尝试使用AQTime,它包含了.NET和本地分析器(http://smartbear.com/products/free-tools/aqtime-standard/)。
另一个选择是熟练掌握微软的xperf工具,这肯定可以完成工作,但学习曲线很陡峭。(http://msdn.microsoft.com/en-us/performance)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接