多年来,我使用了BoundsChecker和Purify这两个很棒的工具,但是这些应用程序的开发人员让我失望了,他们不再努力维护或开发它们。我们在两家公司都有公司帐户,他们都告诉我他们无意生产支持 64 位应用程序的版本。
任何人都可以推荐支持 64 位本机 C++/MFC 应用程序的开源或商业替代方案吗?
多年来,我使用了BoundsChecker和Purify这两个很棒的工具,但是这些应用程序的开发人员让我失望了,他们不再努力维护或开发它们。我们在两家公司都有公司帐户,他们都告诉我他们无意生产支持 64 位应用程序的版本。
任何人都可以推荐支持 64 位本机 C++/MFC 应用程序的开源或商业替代方案吗?
Viva64 ( http://www.viva64.com/viva64-tool/ ) 工具提供对 64 位 Windows 应用程序典型错误的检测。Viva64 是一个类似于 lint 的 C/C++ 代码静态分析器。Viva64 集成到 Visual Studio 2005/2008 环境中,并提供用户友好的界面来测试您的软件项目。
Parasoft 有一个名为 Insure++ 的工具(链接:http ://www.parasoft.com/jsp/products/quick_facts.jsp?product=Insure ),它说它会做到这一点。
我在 Linux 上的 32 位和 64 位应用程序上使用了 Insure++,它运行良好。当它试图解析模板/stl 代码时,它有时会感到困惑并且会崩溃。
该网址说它适用于 32 位和 64 位窗口,祝你好运!
insure++ 仅在您检测代码时才有效。我曾经试过。编译大约 1000 行代码大约需要 5 分钟。由于我需要编译的项目很大,我很快确定 Insure++ 无法正常工作。
更不用说他们的报告了,Insure++ 的输出也相当陈旧。运行时性能损失也很严重。
注意 numega/compuware/other_new_company 中的 boundschecker:不要购买。它只是配置文件 32 位应用程序。它不执行 64 位应用程序。不过,它可以安装在 64 位操作系统上。几年前我在我们的应用程序上停止使用它。不过,我确实在 CppUnit 测试中使用它……有时。
总的来说,我完全厌恶所有的本地内存泄漏工具。它们都不起作用,或者只是在关闭时锁定您的应用程序。
BoundsChecker 9.01 现在终于支持 VC2008 和 x64 位。
仅供参考:BoundsChecker 10.0 在 Windows XP 到 Windows 7 上运行,包括 32 位和 64 位版本。它支持 WOW64 应用程序,也支持 Visual Studio 2010。事实上,我们在微软发布后 30 天内就发布了 VS2010 支持。
我们正在赶上我们的积压。我们很晚才获得对 VS2005 和 VS2008 的支持(BC 9.0,2008 年秋季),但发生这种情况的原因有很多。奇迹是我们把它弄出来了。
BoundsChecker 10.5 出来后,应该有更多的好东西。敬请关注。
披露:我为 MicroFocus 工作。
英特尔(R) Parallel Inspector ( http://software.intel.com/en-us/intel-parallel-inspector/ ) 是 Microsoft* Visual Studio 的线程和内存检查插件工具;它在 Windows 上支持 32 位和 64 位 C/C++。这是一个商业应用程序,提供 30 天免费评估。
披露:我为英特尔工作。
据我了解,BC 9.0 将支持 WOW64
我使用了边界检查和其他动态分析工具,虽然架构不同,但您要检查的是代码——理论上你可以在任何后端运行边界检查,结果是一样的——代码要么在外面它的界限或没有。
唯一的复杂性是处理超过 4GB 的内存空间,处理无法交叉编译为 32 位架构的代码片段(您没有源代码的 64 位目标文件等),以及一般的 64 位迁移问题(特定于平台的代码,例如检查 0xFFFFFFFF 而不是 -1)
您在对程序进行边界检查时遇到了哪些其他问题?您无法编译 32 位版本吗?
当然,这不是您理想的解决方案,并且应该始终检查它们将要运行的代码,但是在这种情况下,您可能别无选择,除非您想进行自己的边界检查(这在任何情况下都是一个好主意案子...)。
-亚当
适用于 x64 和 x86 的应用程序验证程序检测堆损坏 http://www.microsoft.com/download/en/details.aspx?id=20028
来自IBM PurifyPlus 对 64 位版本的 Microsoft Windows 的支持:
技术说明(常见问题)
问题
64 位版本的 Microsoft Windows 是否支持 IBM Rational PurifyPlus?
原因
64 位版本的 Microsoft Windows 越来越流行。
回答
从版本 7.0.1 iFix 003 开始,PurifyPlus 支持在 Windows 上测试 64 位应用程序。
有关 iFix 003 的更多信息,请参阅以下技术说明IBM Rational PurifyPlus for Windows v7.0.1.0-003
您安装此版本的 Purify 并在您的开始菜单中获得“ Purify(用于 64 位应用程序) ”条目。