须要使用 BoundsChecker 提供的编译连接器来编译连接程序。当 BoundsChecker 的编
译连接器编译连接程序时,会向程序中插装一些错误检测代码,这也就是 FinalCheck
能够比 ActiveCheck 找到更多错误的原因。下面就介绍一下如何在 FinalCheck 模式下
对程序进行测试:
(1)在 VC++集成开发环境中打开你所要测试的项目。
(2)由于要使用 BoundsChecker 的编译连接器重新编译连接程序,所以我们为
BoundsChecker 独自构造一个文件夹。在 VC++集成开发环境中,具体操作方法是:
A)点击[ Build/Configurations...]菜单命令。
B) 在 弹 出 的 对 话 框 中 点 击 Ad 按 钮 。 在 Configuration 编 辑 框 中 添 入 你 为
BoundsChecker 创 建 的 文 件 夹 的 名 称 , 这 个 名 称 是 任 意 的 , 比 如 我 们 取 名 为
BoundChecker。
C)在 Copy settings from 组合框中选中 XXX—Win32 Debug 项,然后点击 OK 按
钮,接着点击 Close 按钮。现在,我们已经为 FinalCheck 构造好了一个文件夹。
( 3 ) 点 击 [Build/Set Active Configuration…] 菜 单 命 令 , 选 中 你 刚 才 为
BoundsChecker 建的文件夹,然后点击 OK 按钮。这样 BoundsChecker 编译连接程序时
生成的中间文件、可执行程序,都会被放到该文件夹下。
(4)选择[BoundsChecker/Rebuild All with BoundsChecker]菜单命令,对程序重新
进行编译连接,也就是在这时,BoundsChecker 向被测程序的代码中加入了错误检测
码。编译连接完成后,BoundsChecker 会在你为 BoundsChecker 构造的文件夹中生成可
执行文件。 在 FinalCheck 模式下对程序进行检测的准备工作都已经做好,这时可以启
动程序开始测试了,作步骤与在 ActiveChecker 模式下没什么区别。具体步骤如下:
确 保 VC++ 集 成 开 发 环 境 中 [BoundsChecker/ Error Detection] 菜 单 项 和
[BoundsChecker/ Log Events]菜单项处于选中状态,别外设置[BoundsChecker / Setting]
Memory Tracking 选项中的 Enable FinalCheckt 为选中状态。
点击[ Build\Start Debug]菜单,选中“Go” 菜单项。程序开始在 Debug 状态下运行。
按照你制定好的测试用例,对程序进行操作。
当 BoundsChecker 检测到了错误时,会弹出窗口向你汇报,你可以当时就进行处
理,也可以等到你的操作全部完成,退出程序之后再对列出的这些错误进行分析。这
完全取决于你是否 选中了[BoundsChecker/Display Error and Pause] 菜单项。
退 出 程 序 后 , BoundsChecker 会 给 出 错 误 检 测 结 果 列 表 。 该 错 误 列 表 与
ActiveChecker 给出的错误列表的查看方法完全一样。只不过这个列表中所报告的信息
会更多、更详细一些。
ActiveChecker、FinalCheck 这两种模式,比较而言 各有长短。ActiveChecker 使用
方便,只需在 Debug 状态下直接运行程序即可,并且程序的运行速度较快,但检测的
错误种类有限; FinalCheck 模式下,需要使用 BoundsChecker 的编译连接器重新编译
连接生成可执行程序,并且程序的运行速度比较慢,但检测的错误种 类、提供的错误
相关信息要多于 ActiveChecker。所以,何时使用何种模式,应根据当时的具体情况而
定。
评论8
最新资源