BlackBox 在开发策略上有不同的方法:
BlackBox 调试器是“事后”调试器和“运行时”调试器之间的交叉。它在命令被捕获(事后)后调用,但它不会导致 BlackBox 环境终止(运行时)。某些功能,例如 Info->View State 命令,可以从选定的视图开始跟踪数据结构,通常仅与运行时调试器相关联。
面向对象程序的典型情况是,它们的控制流会变得非常复杂且难以遵循。因此,在一个程序语句对语句(单步)之后,通过消息发送或过程调用在实践中被证明对于调试大型系统是不切实际的。相反,BlackBox 使用更有效的调试策略:
让错误尽快显现出来。
它不是等待某个错误发生,然后试图找到一种方法来找出错误的原因,而是尝试尽可能接近错误的原因来标记错误。这是真正节省调试时间的唯一方法。语言实现遵循相同的策略,通过在访问数组时检查索引溢出,通过在取消引用指针时检查 NIL 访问等。除了这些内置检查,Component Pascal 提供了标准过程 ASSERT,它允许测试一个任意条件。如果违反条件,则会打开一个陷阱窗口。因此,BlackBox 组件框架的过程使用断言,例如在过程开始时检查其输入是否有效。这可以防止具有非法输入的过程可能对系统的其余部分造成任何损害。
这种防御性编程策略在 BlackBox 的开发过程中一次又一次地证明了自己,强烈推荐用于严肃的开发工作。
请参阅帮助系统中的 Dev Subsystem 用户手册,第 5 节。
陷阱窗口如下所示:
