- Rexx 教程
- Rexx - 首页
- Rexx - 概述
- Rexx - 环境
- Rexx - 安装
- Rexx - 插件安装
- Rexx - 基本语法
- Rexx - 数据类型
- Rexx - 变量
- Rexx - 运算符
- Rexx - 数组
- Rexx - 循环
- Rexx - 决策
- Rexx - 数字
- Rexx - 字符串
- Rexx - 函数
- Rexx - 堆栈
- Rexx - 文件I/O
- Rexx - 文件函数
- Rexx - 子程序
- Rexx - 内置函数
- Rexx - 系统命令
- Rexx - XML
- Rexx - Regina
- Rexx - 解析
- Rexx - 信号
- Rexx - 调试
- Rexx - 错误处理
- Rexx - 面向对象
- Rexx - 可移植性
- Rexx - 扩展函数
- Rexx - 指令
- Rexx - 实现
- Rexx - Netrexx
- Rexx - Brexx
- Rexx - 数据库
- 手持式和嵌入式
- Rexx - 性能
- Rexx - 最佳编程实践
- Rexx - 图形用户界面
- Rexx - Reginald
- Rexx - Web编程
- Rexx 有用资源
- Rexx - 快速指南
- Rexx - 有用资源
- Rexx - 讨论
Rexx - 调试
调试是任何编程语言中的重要功能。它帮助开发人员诊断错误,找到根本原因,然后相应地解决问题。在 Rexx 中,trace 实用程序用于调试。trace 指令可以通过两种方式实现,一种是批处理模式,另一种是交互模式。让我们看看如何实现这两个选项。
批处理模式下的 Trace
trace 命令用于详细显示每个执行的 Rexx 命令。
trace 语句的一般语法如下所示:
语法
trace [setting]
其中设置可以是以下任何一个选项:
A - 追踪所有命令。
C - 只追踪发送到操作系统的宿主命令。
E - 只追踪导致错误的发送到操作系统的宿主命令。
F - 只追踪导致失败的发送到操作系统的宿主命令。
I - 这提供了一个中间级别的 Rexx 命令追踪。
L - 如果你想在追踪发生时进行标记,则使用此选项。
N - 这是默认选项,不进行任何追踪。
让我们来看一个 trace 命令的例子。
示例
/* Main program */ trace A /* Main program */ n = 100.45 if datatype( n, wholenumber ) then signal msg say 'This is a whole number' return 0 msg : say ' This is an incorrect number '
上述程序的输出如下:
5 *-* n = 100.45 if datatype( n, wholenumber ) then signal msg 7 *-* say 'This is a whole number This is a whole number 8 *-* return 0
从输出中,您可以看到程序输出中添加了额外的追踪信息。关于输出,可以注意到以下几点:
执行语句的行号被添加到追踪输出中。
追踪输出中显示了每行执行的代码。
Trace 函数
也可以通过 trace 函数启用 Trace。下面显示了一般语法和示例。
语法
trace()
上述函数返回当前的追踪级别。
参数
无
返回值
上述函数给出当前的追踪级别。
示例
/* Main program */ say trace() /* Main program */ n = 100.45 if datatype( n, wholenumber ) then signal msg say 'This is a whole number' return 0 msg : say 'This is an incorrect number '
上述程序的输出如下所示。
N This is an incorrect number
第一行的 N 表示追踪设置为正常。
设置 Trace 值
可以使用 trace 函数设置追踪级别。下面显示了一般语法和示例。
语法
trace(travel_level)
参数
trace_level - 这与设置追踪级别可用的选项类似。
返回值
上述函数给出当前的追踪级别。
示例
/* Main program */ say trace() current_trace = trace('A') say current_trace /* Main program */ n = 100.45 if datatype( n, wholenumber ) then signal msg say 'This is a whole number' return 0 msg : say ' This is an incorrect number '
上述程序的输出如下:
N 4 *-* say current_trace N 6 *-* n = 100.45 7 *-* if \ datatype( n, wholenumber ) then 8 *-* signal msg 12 *-* say 'This is an incorrect number' 'This is an incorrect number'
交互式追踪
交互式追踪是指在程序运行时进行追踪。就像在 .Net 的 Visual Studio 等 IDE 中,您可以添加断点并查看每个语句是如何执行的,同样在这里您也可以看到程序的每一行代码是如何运行的。
一般语法如下:
语法
trace ?options
其中,选项与 trace 命令相同,如下所示。
A - 追踪所有命令
C - 只追踪发送到操作系统的宿主命令。
E - 只追踪导致错误的发送到操作系统的宿主命令。
F - 只追踪导致失败的发送到操作系统的宿主命令。
I - 这提供了一个中间级别的 Rexx 命令追踪。
L - 如果你想在追踪发生时进行标记,则使用此选项。
N - 这是默认选项,不进行任何追踪。
让我们来看一个实现交互式追踪的例子。
示例
/* Main program */ trace ?A /* Main program */ n = 100.45 if datatype( n, wholenumber ) then signal msg say 'This is a whole number' return 0 msg : say 'This is an incorrect number'
上述程序的输出将如以下程序所示。追踪将停止在每一行代码;然后您需要按 Enter 键才能移动到下一行代码。
This is an incorrect number +++ "LINUX COMMAND /home/cg/root/5798511/main.rex" 5 *-* n = 100.45 if datatype( n, wholenumber ) then +++ Interactive trace. "Trace Off" to end debug, ENTER to Continue. +++ 6 *-* signal msg 10 *-* msg : 10 *-* say 'This is an incorrect number'