使用BoundsChecker「建议收藏」

 BoundsChecker是一个Run-Time错误检测工具,它主要定位程序在运行时期发生的各种错误。              BoundsChecker能检测的错误包括:3sNews.Net——3S社区&资讯平台tbU^N@i7pwMVBe    1)指针操作和内存、资源泄露错误,比如:内存泄露;资源泄露;对指针变量的错误操作。   

大家好,又见面了,我是你们的朋友全栈君。

  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。所以,何时使用何种模式,应根据当时的具体情况而定。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/126241.html原文链接:https://javaforall.net

(0)
上一篇 2022年4月7日 下午3:40
下一篇 2022年4月7日 下午4:00


相关推荐

  • VS下 dllimport与dllexport作用与区别

    VS下 dllimport与dllexport作用与区别我相信写 WIN32 程序的人 做过 DLL 都会很清楚 declspec dllexport 的作用 它就是为了省掉在 DEF 文件中手工定义导出哪些函数的一个方法 当然 如果你的 DLL 里全是 C 的类的话 你无法在 DEF 里指定导出的函数 只能用 declspec dllexport 导出类 但是 MSDN 文档里面 对于 declspec dllimport 的说明让人感觉有点奇怪 先来看看 MSDN

    2026年3月17日
    6
  • lock html路径,lockworkstation

    lock html路径,lockworkstation电脑找不到rundll32.exeuser32.dll,LockWorkStatio想要在人离开的时候锁定电脑,可是找不到路径怎么办?已经创建的快捷方注意不要拼写错了,是rundll32.exeuser32.dll,LockWorkStation不是LockWordStation。也要注意空格和大小写。实在不行可以用记事本写入DimWSHShellSetWSHShell=WScript….

    2022年7月21日
    16
  • c语言scanf函数用法详解_c语言输入scanf格式

    c语言scanf函数用法详解_c语言输入scanf格式本节介绍输入函数scanf的用法。scanf和printf一样,非常重要,而且用得非常多,所以一定要掌握。概述scanf的功能用一句话来概括就是“通过键盘给程序中的变量赋值”。该函数的原型为:#include<stdio.h>intscanf(constchar*format,…);它有两种用法,或者说有两种格式。1)scanf(“输…

    2025年7月27日
    12
  • 六款网站统计工具介绍

    六款网站统计工具介绍1 Google nbsp Analytics nbsp 由大名鼎鼎的 nbsp google nbsp 公司出品的网站统计分析服务 基本可以算作是世界网站统计分析服务的标杆性产品了 功能强大 数据准确 提供目标监测功能 优点 数据精准 服务稳定 功能强大缺点 专业性过强 不易学习 google nbsp 的统计服务更侧重于整体网站趋势的分析 而缺少流量的细节信息 无访客细节信息 不推荐小型站长 博客和网店主使用 此外 和中国众多提供实时统计数据

    2026年3月19日
    2
  • 《计算机组成原理》基础概念笔记整理

    《计算机组成原理》基础概念笔记整理《计算机组成原理》复习整理以下我将使用笔记的方式,将整本书重点整理一下,或许会有纰漏,望大家多多包涵。第一章计算机系统概论计算机的硬件:计算机中的电子电路和物理装置;计算机硬件的五大部分:运算器、控制器、存储器、输入设备和输出设备;计算机的软件:计算机运行所需的程序及相关的资料;软件系统:一台计算机中的全部程序的集合;计算机软件的分类(按功能划分):应用软件和系统软件;系统…

    2022年5月6日
    42
  • 基于SSM实现的旅游管理系统【附源码】(毕设)[通俗易懂]

    基于SSM实现的旅游管理系统【附源码】(毕设)[通俗易懂]一、项目简介本项目是一套基于SSM实现的旅游管理系统或旅游网站或旅游社交平台或旅游景点管理系统,主要针对计算机相关专业的正在做毕设的学生与需要项目实战练习的Java学习者。详细介绍了该系统的具体实现,包括:项目介绍环境搭建系统功能技术实现项目运行功能演示以通俗易懂的方式,手把手的带你从零开始部署并运行本套系统,该项目附带全部源码可作为毕设使用。项目都经过严格调试,确保可以运行!课程包含:项目源码、项目文档、数据库脚本、软件工具等所有资料带你从零开始部署运行本套系统

    2022年5月6日
    211

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号