- 雷克斯教程
- 雷克斯 - 主页
- Rexx - 概述
- Rexx - 环境
- Rexx - 安装
- Rexx - 插件安装
- Rexx - 基本语法
- Rexx - 数据类型
- Rexx - 变量
- Rexx - 操作员
- Rexx - 数组
- Rexx - 循环
- Rexx - 决策
- Rexx - 数字
- Rexx - 弦乐
- Rexx - 功能
- Rexx - 堆栈
- Rexx - 文件 I/O
- Rexx - 文件函数
- Rexx - 子程序
- Rexx - 内置函数
- Rexx - 系统命令
- 雷克斯-XML
- 雷克斯 - 里贾纳
- Rexx - 解析
- Rexx - 信号
- Rexx - 调试
- Rexx - 错误处理
- Rexx - 面向对象
- Rexx - 便携性
- Rexx - 扩展功能
- Rexx - 说明
- Rexx - 实施
- 雷克斯 - Netrexx
- 雷克斯 - Brexx
- Rexx - 数据库
- 手持式和嵌入式
- Rexx - 性能
- Rexx - 最佳编程实践
- Rexx - 图形用户界面
- 雷克斯 - 雷金纳德
- Rexx - 网络编程
- 雷克斯有用资源
- Rexx - 快速指南
- Rexx - 有用的资源
- Rexx - 讨论
Rexx - 调试
调试是任何编程语言的一个重要功能。它可以帮助开发人员诊断错误,找到根本原因,然后相应地解决它们。在 Rexx 中,跟踪实用程序用于调试。跟踪指令可以通过两种方式实现,一种是批处理方式,另一种是交互方式。让我们看看如何实现这两个选项。
批处理模式下的跟踪
Trace 命令用于给出所执行的每个 Rexx 命令的详细级别。
跟踪语句的一般语法如下所示 -
句法
trace [setting]
其中设置可以是以下选项中的任何一个 -
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 '
上述程序的输出如下 -
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()
上述函数返回当前跟踪级别。
参数
没有任何
返回值
上述函数给出了当前的跟踪级别。
例子
/* 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(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'
互动追踪
其中交互式跟踪是在程序运行时进行跟踪。就像在 Visual Studio for .Net 等 IDE 中一样,您可以在其中添加断点并查看每个语句的执行情况,同样,您也可以在每个代码行运行时看到程序。
一般语法如下 -
句法
trace ?options
其中,选项与跟踪命令相同,如下所示。
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'