C++;BoundsChecker跟进 我们已经和BoundsChecker一起运行Visual C++ 6年了(我想它也是5或6)。我们已经升级到VS2008(终于!),现在需要对过时的BoundsChecker进行后续更新

C++;BoundsChecker跟进 我们已经和BoundsChecker一起运行Visual C++ 6年了(我想它也是5或6)。我们已经升级到VS2008(终于!),现在需要对过时的BoundsChecker进行后续更新,c++,visual-studio,memory-leaks,C++,Visual Studio,Memory Leaks,风景怎么样? 外面有什么工具? 城里有新来的孩子吗? 对于我们使用内存分析器处理的问题,有什么新的想法吗? 您最近使用这些工具的经验? 推荐 主要应用是C++,有许多COMDLL,我们正在寻找跟踪本地、C++和COM漏洞和对象。这种大小的边界检查器在性能上已经是一个难题,需要整理大量的数据及其一些限制 需要对托管应用程序(主要是C#)的支持,尽管这可能是一个单独的工具 相关(但IMO不完整)问题: [编辑] 注释:“在现代C++中,你只使用自检类型,并且边界永远不会被破坏”: 引用计数智能指

风景怎么样?
外面有什么工具?
城里有新来的孩子吗?
对于我们使用内存分析器处理的问题,有什么新的想法吗?
您最近使用这些工具的经验?
推荐

主要应用是C++,有许多COMDLL,我们正在寻找跟踪本地、C++和COM漏洞和对象。这种大小的边界检查器在性能上已经是一个难题,需要整理大量的数据及其一些限制

需要对托管应用程序(主要是C#)的支持,尽管这可能是一个单独的工具


相关(但IMO不完整)问题:


[编辑]


<注释>注释:“在现代C++中,你只使用自检类型,并且边界永远不会被破坏”:

引用计数智能指针可以具有循环引用。接口COM组件本质上是不安全的,因为它需要大量的手动内存管理。我遇到了一个GDI处理的没有用户界面的第三方服务漏洞,所以它使我们的夜间测试崩溃——供应商将其归咎于一个“奇怪的”微软API。我必须与基于C的库接口,我有大量的遗留代码,这些代码假设数字配方意义上的分配欺骗是一件好事,长度超过3个字母的变量名适合打字员。我有来自工程师的代码,他们的
std::vector::iterator
看起来比
double***
可怕得多,祝你在没有坚实的信号处理背景的情况下开发和测试这些代码


所以,除非你来到这里,在Foebug C++类中重写并封装一百万行代码的核心,并确保几十个产品仍然像以前一样工作,保持你的聪明断言。我希望我不需要内存检查器,但我需要。谢谢。

我们评估了英特尔的Inspector and Purify Boundschecker

他们或多或少都是废物

对于我们的主要应用程序,BoundsChecker在许多小时后不会启动它;它只适用于几个较小的应用程序;但要找到一些事情(我想我们仍在与他们联系以解决问题)

Intel的Inspector可以工作,但不插入代码,它只在可执行文件上运行(与整套Intel产品一起使用时可能会更好)

净化失败得很惨;我们从来没用过它

我们对此仍不确定


Max.

我有一个庞大的应用程序(在这里工作),新的bounds checker 10.5(现在支持64位应用程序)几乎可以与之配合使用。Max的诀窍是不要同时打开devpartner边界检查器的所有检查器功能。只打开内存泄漏,或者只打开其他一些功能,然后运行应用程序。无论如何,排除您不需要的模块。有很多东西可以用来调整你的设置,让它更快。但是是的,它确实受到了性能上的打击。但这就是球赛的名字

英特尔的平行检查员给了我们成千上万的误报。我没有用它

Purify仅适用于32位应用程序。i、 e.小型32位本机应用程序。忘记使用托管C++应用程序。
请记住,如果你有一个大的32位应用程序,内存分析工具通常不会工作很多,因为内存开销很大。由于您在32位地址空间中的内存非常有限,很快就会用完空间,工具也会失败。

免责声明和警告:我为Micro Focus工作,它是DevPartner Studio和BoundsChecker产品的所有者

BoundsChecker 10.5是DevPartner Studio 10.5的一部分(尽管您可以自己购买),它支持32位和64位应用程序的Visual Studio 2005、2008和2010非托管代码,基本上与它在Visual Studio 6.0上支持32位应用程序的方式相同。在增强它以支持X64应用程序的同时,我们发现并修复了许多非常老的问题,并开始工作,尽管某些VS2010应用程序中存在.NET 4.0代码。我之所以说“尽管如此”,是因为.NET4.0在进程空间中做了很多非常糟糕的事情,做了一些微软警告其他人不要做的事情,并且对BoundsChecker之类的工具有一定的内在抵抗力,这些工具本质上是巨大的病毒


无论如何,自从该版本发布(2月4日)以来,我们已经对其进行了更新,使其可以在Windows7SP1上工作(目前还不是很公开),就BoundsChecker而言,我们也可以使用VisualStudio2010SP1。我们还发现了一个令人讨厌的.NET4.0陷阱,并设法阻止它把我们搞垮。这些增强和修复将在我们的下一次公开更新中提供,希望在下个月左右。

Boundschecker:我刚买了一个(&(^订阅,它只允许我使用这个该死的产品99天,所以我对此感到非常不安)但不管怎样,我有很大的内存问题,我认为我应该运行这个程序。它似乎捕捉到了很多有趣的东西,但速度太慢了,我们可以这么说:我的应用程序仍然在DLL初始化代码中;它已经运行了至少几个小时,到目前为止,它还没有达到应用程序在应用程序中正常运行的程度前几秒钟,Boundschecker曾是numega时代的“狗屎”,但它似乎真的是另一个被投机取巧的商业实体(如borland compilers)兜售的技术孤儿

所以我真的很喜欢它的工作原理,它有很多很棒的信息。我只需要看看我是否真的能得到任何好的结果。它目前使用4+GB的RAM,甚至还没有完全启动。因为我使用的win7/64带有一个残缺的家庭版,只能识别12GB,我可能会在真正启动之前耗尽内存