在Borland C++Builder中检查程序
BoundsChecker与Borland C++Builder的1.0, 3.0和4.0都进行了集成,因此你能够在不离开开发环境的情况下使用BoundsChecker先进的错误检查能力。
另外, BoundsChecker 提供了SmartDebugging 去提高C++Builder开发环境下的调试器。SmartDebugging监控着所有的事件,当你逐步调试代码的时候它会查找其中的错误。当它遇到一个问题, 它不但显示错误而且让你选择是否将调试器定位到包含错误的源代码行处,去立即查看分析错误信息或继续调试,稍后查看并分析错误.
在你使用 SmartDebugging以前, 设置C++Builder里面的选项,建立带有调试和框架信息的程序。一旦你设置了这些选项, 就像平常一样运行程序。BoundsChecker自动地在后台运行来检查你的代码,接下来的章节将说明如何为SmartDebugging去设置C++Builder的选项和如何去检查你的程序。
设置C++Builder属性从而支持快速调试
为了支持 SmartDebugging, 通过设置 C++Builder的选项来建立带有调试和框架信息的程序。当你每次建立你的应用程序时:
1 C ++Builder 1.0: 在Options菜单上,点击Project。
C++Builder 3.0 和 4.0: 在Project菜单上,点击Options。
2 C ++Builder 1.0: 点击 C++键。
C++Builder 3.0 和 4.0: 点击Compiler键。
3 选择:
a Debug information
b Line number information
c Stack frames
4 在Code optimization,之下, 点击None。
5 点击Linker键。
6 选择:
a Create Debug Information
b C++Builder 1.0: Link debug version of VCL
C++Builder 3.0 and 4.0: Use debug libraries
7 点击 OK。
检查你的程序
开始检查你的程序:
1 在File菜单上, 点击Open 去定位和找到你想检查的工程文件。
2 如果 BoundsChecker 不能够使用, 点击 BoundsChecker, 然后点击Integrated Debugging.。
3 在Run菜单上,点击Run去编译和运行你的程序。
4 当你在使用你的应用程序时, BoundsChecker在后台工作。 当 BoundsChecker 遇到一个错误, 它会显示详细的错误信息。
图 2 -4 C ++Builder程序中发现错误的窗口
Acknowledge the error 确认错误
Debug the error 调试错误
Get Help on the error 在错误上得到帮助
Bug description 缺陷描述
Log subsequent errors without pausing to report them
记录并发的错误而不暂停程序来汇报它们
Hide call stack and source code 隐藏呼叫堆叠和源代码
Disable error and event Reporting 禁止错误和事件报告
Source code that contains the error 包含错误的源代码
Stop your program 中止你的程序
Suppress the error from being reported 隐藏重复的错误
Call Stack 呼叫堆叠
Display Memory Statistics 显示内存使用统计表
你也可以:
l 点击Debug使程序在错误发生的地方切换到调试器。
重新开始你正在调试的片段, 运行程序。
图 2 -5 C ++Builder中的源代码行显示
l 点击Acknowledge继续检查你的程序。
l 点击Suppress,如果你不需要 BoundsChecker 重复报告同样的错误。 BoundsChecker 然后让你选择在哪一个环境之下隐藏重复错误提示(在函数里面, 在源文件里面, 在。EXE 或 DLL, 或它发生的任何地方) 并且会让你增加一个注释。 你也可以为将来再次运行这个程序保存这些隐藏重复信息设置。
有两个主要理由你可能想要隐藏重复错误:
² 错误的产生属于代码的另外开发者或者第三方的 DLL(动态链接库) 或 OCX。
² 你的代码完全能够处理的错误。例如,BoundsChecker 可能发现一个你的代码可以处理的API调用失败。
l 点击记忆按钮会显示一项从最后的标志被设置之后内存分析的统计表。使用这个窗口, 你也可以设置一新的标志, 保存统计表, 或解散对话框。 "内存分析"见第 30 页上详细资料。
l 点击可以切换错误和事件报告开或关。这允许你捕获与你正在测试的程序有关的信息, 而排除那些的不必要的错误和事件报告。第 29 页上见 " 错误和事件报告 " 。
BoundsChecker列出它发现的所有的错误和泄露。要是想显示包含错误或泄露的代码, 双击进入。
图 2 -6 C ++Builder中的程序结果窗口
BoundsChecker 也会报告程序的事件 , 因此你可以找到哪个步骤导致了一个错误。 见第 31 页 "观察错误检测任务的结果" 来获取关于分析事件的更多信息。