首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用boundsChecker检测内存泄漏

使用boundsChecker检测内存泄漏
EN

Stack Overflow用户
提问于 2013-02-21 14:22:16
回答 2查看 980关注 0票数 0

我正在使用boundsChecker检测内存,但是当我使用本机c/c++工具管理器的错误检测类型的工具构建它时,我得到了构建错误。当我看到output窗口时,它显示NM2002: Inline expansion (/Ob)在检测期间使用此错误。

但是,当我选择检测类型作为性能或覆盖率分析时,源代码是成功构建的,但是当我运行测试用例来检查内存泄漏时,它没有显示任何内存泄漏。有没有人能帮我...另外,请建议我应该使用哪种类型的检测工具来检测内存泄漏。

EN

回答 2

Stack Overflow用户

发布于 2013-02-21 19:07:35

关于检测内存泄漏,您需要激活“内存跟踪”子系统。默认情况下处于激活状态。但是,它不跟踪由托管C/C++分配的内存,只跟踪非托管分配的内存。

你介意分享你的测试用例吗?我是维护产品的开发人员之一,如果有必要,我们可以安排一个保密协议的协议。

票数 0
EN

Stack Overflow用户

发布于 2013-02-21 19:12:07

当我们在两次编译之间插入代码时,/Obn内联确实会导致被植入代码的错误。代码被给予第一次编译,并且一些代码可能被标记为可能的内联。然后,我们将所有插装添加到中间语言中。然后进行编译的最后一次传递,如果他们试图用插装内联代码,可能会发生不好的事情。这就是为什么我们尽可能禁用内联,并在需要时生成错误的原因。

您使用的是哪个VS版本?Devpartner的哪个版本?

您将需要使用错误检测功能进行编译以捕获内存泄漏。我建议使用Debug build编译,同时关闭内联。

编辑我刚刚用VS2008和VS2010以及当前的11.1候选版本运行了几个测试

我没有收到错误,而是

1>检测正在添加(/Ob0)以关闭内联1>cl :命令行警告D9025:使用'/Ob0‘重写'/Ob1’

警告1 D9025:使用'/Ob0‘覆盖'/Ob1’e:\cust\Anthony\ Test \ Test \cl测试警告2警告D9025:使用'/Ob0‘e:\cust\Anthony\Test\Test\cl测试覆盖'/Ob1’

这些消息告诉我们正在禁用内联。只有在启用了将警告视为错误的情况下,才会将其视为错误。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14995837

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档