在VS6时代,有来自Numega的BoundsChecker。我知道它已经死了,如果我错了,请纠正我。什么是可靠的替代品?优选免费或至少提供试用版本。
答案 0 :(得分:6)
IMO编写自定义内存管理器(支持new / delete / malloc / free包装器的管理器)可能是个更好的主意。创建一个使用VirtualProtect锁定未使用/释放内存的新/删除包装器(是的,我知道默认分配块必须是PAGE_SIZE字节大,即使对于一个小应用程序你也需要很多内存,但这是唯一的坏处)。如果你在Linux上,它可能有VirtualProtect替代品。在这种情况下,任何令人发指的越界访问都会产生访问冲突,并且很容易跟踪。也可以在可能的情况下使用stl容器 - 它们还提供边界检查。
这个建议是基于经验的 - 我使用了一个非常复杂的(几兆字节的代码)旧软件,它有内存泄漏,从多个线程访问已经释放的内存等等。我花了一周时间尝试不同的工具(净化,devpartner工作室,aqtime等),虽然其中一些提供了大量信息,但没有一个真正有用。随着自定义内存管理问题在2天内被消除(包括编写内存管理器)。
如果这对您不起作用,请尝试使用compuware devpartner studio - 如果它仍可在任何地方使用。
答案 1 :(得分:2)
Boundschecker并没有死。我在Visual Studio 2008中使用它。
他们只是改变了所有者(Compuware到MicroFocus,到Borland),现在它被称为Visual C ++ BoundsChecker Suite的DevPartner
检查一下:
http://www.borland.com/Products/Software-Testing/Automated-Testing/Devpartner-Studio
答案 2 :(得分:1)
BoundsChecker当然没有死。 “它只是大部分死了,这意味着部分活着”(对不起,无法抗拒公主新娘的Miracle Max引用。)说真的,BoundsChecker在Micro Focus的管理下仍然活跃并且蓬勃发展。我们将在BoundsChecker中发布具有64位应用程序支持的DevPartner Studio,.NET /本机/混合性能和覆盖率分析器,以及.NET内存和整体CPU /网络/磁盘IO性能分析器。寻找DPS 10.5将于2011年2月4日发布.10.5版本与Visual Studio 2005,2008和2010无缝集成,但您仍然可以使用BC standalone对VC6和VC2003二进制文件运行Active Check,并在需要时取得一些成功。无耻的插件:我在DevPartner团队工作。我正在发表声明,宣布DPS 10.5与x64平台上的C ++和.NET app dev故障排除的新发现。使用新的定价模式,您可以只获得BC或仅仅是性能分析器,DPS应该比Compuware管理和高昂的定价更容易获得。免责声明:这些是我自己的意见,不一定得到Micro Focus的批准。
答案 3 :(得分:0)
答案 4 :(得分:0)
BoundsChecker被多次获得,现在在这里:http://microfocus.com/products/DevPartner/BoundsCheckerSuite.asp
另一个选择是Rational Purify(现在由IBM拥有):http://www-01.ibm.com/software/awdtools/purify/
这两种产品都有用。但它们都不是银弹,并带来了一些非常重要的工作来从中获取有用的信息。 YMMV
答案 5 :(得分:0)
我也为Micro Focus工作,现在是BoundsChecker(DPS错误检测)运行时内部的主要人物。产品肯定没有死,但现在保持活力的主要原因是某些人的狂热忠诚。虽然忠诚度只是到目前为止。我们继续拥有客户。如果产品根本没有销售,那么公司很久以前就已经把我们全部放好了,并将产品装罐。
无论如何,对于有问题或错误报告的人,请在http://community.microfocus.com/尝试我们的论坛。
答案 6 :(得分:0)
Bounds Checker曾经是我的第二个最喜欢的工具。我发现它非常有用。然后它变得非常昂贵,以至于我不再能够证明其购买的合理性。如果你想知道为什么几乎没有人知道这个伟大的工具了,那就是你的答案。