BoundsChecker是一个Run-Time错误检测工具,它主要定位程序在运行时期发生的各种错误。

BoundsChecker能检测的错误包括:3sNews.Net——3S社区&资讯平台 t b U ^ N @ i7p'w M V B e
1)指针操作和内存、资源泄露错误,比如:内存泄露;资源泄露;对指针变量的错误操作。
2)内存操作方面的错误,比如:内存读、写溢出;使用未初始化的内存。平台 n.U3U B C _3S社区&资讯平台!z&v k.U M [8S([
3)API函数使用错误。

使用BoundsChecker对程序的运行时错误进行检测,有两种使用模式可供选择。一种模式叫做ActiveCheck,一种模式叫做FinalCheck。下面分别进行介绍。
1)ActiveCheck是BoundsChecker提供的一种方便、快捷的错误检测模式,它能检测的错误种类有限,只包括:内存泄露错误、资源泄露错误、API函数使用错误。
U `)R4p+~0要想使用ActiveCheck模式来检测程序的运行时错误,只需在VC++集成开发环境中打开BoundsChecker功能,然后从调试状态运行程序即可。此时ActiveCheck会在后台自动运行,随时检测程序是否发生了错误。下面说一下具体的使用步骤。
首先,在VC++集成开发环境中打开你要对其进行测试的程序,同时保证项目处于Debug编译状态下。3sNews.Net——3S社区&资讯平台 c i3V$D0[/a7M k j
其 次,确保VC++集成开发环境中[BoundsChecker/Integrated Debugging]菜单项和[BoundsChecker/Report Errors and Events]菜单项处于被选中的状态。只有这两项被选中,BoundsChecker才会在程序运行过程中发挥作用。
,~ ]*f:{)Y+U+S0 最后,在VC++集成开发环境中选择[Build/ Start Debug/Go]菜单命令,在Debug状态下运行程序,ActiveCheck也在后台开始运行了。
2)FinalCheck具有BoundsChecker提供的所有检错功能。 FinalCheck 是ActiveCheck的超集,它除了能够检测出ActiveCheck能够检测出的错误,还能发现很多 ActiveCheck 不能检测到的错误,包括:指针操作错误、内存操作溢出、使用未初始化的内存等等,并且,对于ActiveCheck能检测出的错误,FinalCheck 能够给出关于错误更详细的信息。所以,我们可以把FinalCheck认为是ActiveCheck的功能增强版。我们付出的代价是:程序的运行速度会变 慢,有时甚至会变的很慢。
x ~ ?#I A0^5d.y#_ W0 要 想在FinalCheck 模式下测试程序,不能使用VC++集成开发环境提供的编译连接器来构造程序,而必须要使用BoundsChecker提供的编译连接器来编译连接程序。当 BoundsChecker的编译连接器编译连接程序时,会向程序中插装一些错误检测代码,这也就是FinalCheck能够比ActiveCheck找 到更多错误的原因。
&C x!U T B&k0 下面就#q/S P3T w0介绍一下如何在FinalCheck模式下对程序进行测试:3sNews.Net——3S社区&资讯平台8x t j E l)p
1)在VC++集成开发环境中打开你所要测试的项目。3sNews.Net——3S社区&资讯平台 ~ E J#H a$k
2)由于要使用BoundsChecker的编译连接器重新编译连接程序,所以我们为BoundsChecker独自构造一个文件夹。在VC++集成开发环境中,具体操作方法是:
O Q ~2C ~&G c0 A)点击[ Build/Configurations...]菜单命令。3sNews.Net——3S社区&资讯平台+M e!X ~ | T k8O \ l k4D
B)在弹出的对话框中点击 Add 按钮。在Configuration 编辑框中添入你为BoundsChecker创建的文件夹的名称,这个名称是任意的,比如我们取名为BoundChecker。3sNews.Net——3S社区&资讯平台 v ~ z'Z O R)L1e
C)在 Copy settings from组合框中选中XXX—Win32 Debug项,然后点击OK按钮,接着点击Close按钮。
B p%Z3q H/U7P g Q#L0 现在,我们已经为FinalCheck构造好了一个文件夹。
\5L&{+Q.^#[0 3) 点击[Build/Set Active Configuration…] 菜单命令,选中你刚才为BoundsChecker建的文件夹,然后点击OK按钮。这样BoundsChecker编译连接程序时生成的中间文件、可执行程序,都会被放到该文件夹下。3sNews.Net——3S社区&资讯平台 D i#f f*a
4)选择[BoundsChecker/Rebuild All with BoundsChecker] 菜单命令,对程序重新进行编译连接,也就是在这时,BoundsChecker向被测程序的代码中加入了错误检测码。编译连接完成后, BoundsChecker会在你为BoundsChecker构造的文件夹中生成可执行文件。
3^ r'? Z V v a0 在FinalCheck模式下对程序进行检测的准备工作都已经做好,这时可以启动程序开始测试了,作步骤与在ActiveChecker模式下没什么区别。具体步骤如下:S S;g

  • 确保VC++集成开发环境中[BoundsChecker/ Integrated Debugging]菜单项和[BoundsChecker/Report Errors and Events]菜单项处于选中状态。
  • 点击[ Build\Start Debug]菜单,选中“Go” 菜单项。程序开始在Debug状态下运行。
  • 按照你制定好的测试用例,对程序进行操作。
    m8\6V l `"`0
  • 当BoundsChecker 检测到了错误时,会弹出窗口向你汇报,你可以当时就进行处理,也可以等到你的操作全部完成,退出程序之后再对列出的这些错误进行分析。这完全取决于你是否 选中了[BoundsChecker/Report Errors Immediately] 菜单项。
  • 退出程序后,BoundsChecker会给出错误检测结果列表。该错误列表与ActiveChecker给出的错误列表的查看方法完全一样。只不过这个列表中所报告的信息会更多、更详细一些。

好 了,BoundsChecker在FinalCheck模式下的使用也介绍完了。ActiveChecker、FinalCheck这两种模式,比较而言 各有长短。ActiveChecker使用方便,只需在Debug状态下直接运行程序即可,并且程序的运行速度较快,但检测的错误种类有限; FinalCheck模式下,需要使用BoundsChecker的编译连接器重新编译连接生成可执行程序,并且程序的运行速度比较慢,但检测的错误种 类、提供的错误相关信息要多于ActiveChecker。所以,何时使用何种模式,应根据当时的具体情况而定。

下载:

http://www.360doc.com/content/08/1128/11/59141_2010502.shtml

版权声明:本文为博主原创文章,未经博主允许不得转载。

转载于:https://www.cnblogs.com/wangicter/archive/2011/09/02/4767439.html

使用BoundsChecker相关推荐

  1. Visual studio内存泄露检查工具--BoundsChecker

    BoundsChecker是一个Run-Time错误检测工具,它主要定位程序在运行时期发生的各种错误. BoundsChecker能检测的错误包括: 1)指针操作和内存.资源泄露错误,比如:内存泄露: ...

  2. 使用BoundsChecker查找内存泄露

    以前搞开发时,曾经写过类似的文章,不过带不出来,最近VS推出了新版VS2010,而BoundsChecker也推出了适用于vc6, vs2005,vs2008,vs2010的新版本,于是下载下来试了一 ...

  3. 学习BoundsChecker

    对C++程序不熟悉,但是因为工作需要,要对一些程序进行测试分析,找出是否有内存泄露情况.在网上找到了大家比较推崇的BoundsChecker,安装后开始看软件自带的手册,为了让更多的同事一起学习,要将 ...

  4. 我是怎样使用BoundsChecker的

    在开始本文之前,我想声明的是我曾经在NuMega工作过,并在那里参与编写了BoundsChecker的3.4.5版本.显然,我个人非常推崇BoundsChecker,尽管还会有一些其它能与Bounds ...

  5. BoundsChecker的用法

    BoundsChecker 是一个Run-Time错误检测工具,它主要定位程序在运行时期发生的各种错误.BoundsChecker能检测的错误包括: 1))1.指针操作和内存.资源泄露错误,比如: 内 ...

  6. BoundsChecker简易使用教程

    BoundsChecker是一个Run-Time错误检测工具,它主要定位程序在运行时期发生的各种错误. BoundsChecker能检测的错误包括: 1)指针操作和内存.资源泄露错误,比如:内存泄露: ...

  7. VS2005 下使用BoundsChecker检测内存泄露

    BoundsChecker无法集成到VS2005中,使用时:先用VS2005 debug模式下生成EXE,然后再用BoundsChecker打开这个EXE文件即可. 在使用过程中发现: 对于同一内存泄 ...

  8. 内存检测工具BoundsChecker使用详述

    内存检测工具BoundsChecker使用详述 或许你还不知道大名顶顶的Nu-Mega,但一定听说过他们的产品SoftICE,BoundsChecker也是这家公司的产品.与Visual C++配合使 ...

  9. BoundsChecker检查内存泄露

    网上有几篇文章是写BoundsChecker的,主要是讲用途在哪,对于我这初学的,连基本使用步骤还不会,运用到实际项目中就更加困难,而且DevPartner这个软件网上有几个版本,有些个下载安装好,根 ...

  10. 单元测试工具 BoundsChecker 【转载】

    单元测试工具 BoundsChecker [转载] BoundsChecker 是一个Run-Time错误检测工具,它主要定位程序在运行时期发生的各种错误.BoundsChecker能检测的错误包括: ...

最新文章

  1. 微信公众号扫描带参数二维码实现自动分组?
  2. Asp.net正则获取html内容
  3. WIN32 _WIN32 _WIN64宏定义
  4. Ubuntu安装apache+Yii2
  5. SAP Spartacus由于导入module路径在服务器上不正确而导致的Travis build错误
  6. MagicRecord For IOS API深层解析
  7. java属于哪种语言_Java属于以下哪种语言( )_学小易找答案
  8. 重构 - 美股行情系统APP推送改造
  9. linux iptables_linux 开启独立iptables日志
  10. 单片机原理及应用姜志海pdf_单片机原理及应用.pdf
  11. SASS与 PASS的基本定义、适用范围以及差异
  12. linux 安装多版本jdk
  13. 夏普SHARP AR-2818 一体机驱动
  14. PowerDesigner安装教程
  15. linux桥接wifi与有线,两个路由器有线桥接好还是无线桥接好?
  16. 动画程序时长缩放是什么意思_Premiere视频剪辑教程8:PR关键帧动画,让你的图片和文字动起来...
  17. e.target的用法
  18. ShortCuts的使用
  19. Firefox默认英文修改中文
  20. 亚马逊云科技re:Invent现场访谈:医疗健康行业的云上未来

热门文章

  1. 小程序开发——比较好看的登录界面设计
  2. 奈奎斯特判据的个人理解
  3. 人民币对PHP金汇率,PHP货币是哪个国家的,和人民币的汇率怎么样,3万人民币能兑换多少?...
  4. 网易云音乐刷了我的过去...
  5. 微生物组数据系统发育分析的方法
  6. 适合中小企业的协同办公软件一览
  7. sqlserver xml 操作:3、对不确定结构、属性的xml进行处理
  8. 5S管理活动的实施和运行方案
  9. word参考文献插入和上标设置
  10. Vue3+elementplus搭建通用管理系统实例七:通用表格实现上