如何调试Rexx代码?

时间:2012-05-29 10:07:28

标签: debugging rexx

我正在开发一个基于Rexx构建的代码解析器。它是一个单个文件脚本,包含大约5000行代码或更多代码。我之前从未参与Rexx的工作。除此之外,可读性问题使我的生活变得更加艰难。所以,

是否有任何工具可以调试和理解Rexx代码?

3 个答案:

答案 0 :(得分:8)

使用trace声明?最简单的跟踪模式是“A”。这会导致每条指令在执行之前显示。您的指令将显示一个行号,并在其前面加上三个字符 - ,以便您可以将其标识为脚本中的一行。

答案 1 :(得分:2)

Wikipedia有一个pretty good article on Rexx,它可以帮助您理解Rexx语法和程序结构。几乎任何Rexx书籍都适用于您的环境,因为Rexx是非常跨系统的(类似于年轻的Perl和Python语言)。没有很多在线书籍,因为几乎所有关于Rexx的文章都是在网络存在之前编写的,但是reference manualRegina implementation是,这是一个特别好的参考书。

答案 2 :(得分:0)

这个问题的日期已经过时了,但是我会分享我发现对下一个提起这个问题的人有用的东西。 已经提到的是TRACE选项。我发现在一小段代码中这可能是压倒性的,更不用说5,000行或更多。
以下是我认为有用的一些选项:

  1. 使用" if"仅在某些情况下开启跟踪。
    if counter < 25 then trace "A"
    请务必使用以下方式关闭跟踪:
    else trace "OFF"
  2. 使用say后跟pull。所说的内容将一直保留在屏幕上,直到你点击进入。
  3. 添加子程序:
    AskIt:
    parse pull comment
    say comment
    say 'enter "X" to exit program'
    pull continue {
    {1}} {
    {1}}
    这是通过if Continue \= "X" then return来调用的,并显示:
    exit
    call AskIt "In routine that loops, counter=" counter
    测试人员选择通过按Enter键返回代码或者用X退出程序以编辑源。
    暂时在例程标签后面的行上插入In routine that loops counter='##将允许您在不删除所有呼叫的情况下不间断地运行代码。

    我为z / OS编写了一个编辑宏,在每个例程标签后插入enter "X" to exit program。它会插入带有return的代码,其中包含一个易于识别的短语,以简化清理。
    这方面的受众很小,所以我不会在此处包含代码。
    /> 希望这有助于某人。