我正在构建在Rexx上的代码分析器上工作。它是一个包含大约5000行代码或更多代码的单个文件脚本。我以前从来没有在Rexx上工作过。除此之外,可读性问题让我的生活更加艰难。所以,如何调试Rexx代码?
是否有任何工具来调试和理解的Rexx代码?
我正在构建在Rexx上的代码分析器上工作。它是一个包含大约5000行代码或更多代码的单个文件脚本。我以前从来没有在Rexx上工作过。除此之外,可读性问题让我的生活更加艰难。所以,如何调试Rexx代码?
是否有任何工具来调试和理解的Rexx代码?
使用trace声明?最简单的追踪模式是'A'。这会导致每条指令在执行之前显示。您的指令会显示一个行号和前面的三个字符-,以便您可以在脚本中将其识别为一行。
对,“TRACE”是常用的答案。最特别的是,'TRACE?I',开始了大多数IDE将会描述为单步调试器。当程序暂停并且调试器接管时,可以键入任何Rexx语句,例如'SAY variableICareAbout'或'SomeVar ='一个新值'。 –
维基百科有一个pretty good article on Rexx,这应有助于你理解的Rexx语法和程序结构。几乎所有的Rexx书籍都适用于你的环境,因为Rexx是非常跨系统的(类似于年轻的Perl和Python语言)。没有太多的在线书籍,因为几乎所有关于Rexx的文章都是在网络存在之前编写的,但是对于Regina implementation是,这是一个非常好的参考书。
在这个问题上的日期是老了,但我会分享我已经找到了谁拉这件事旁边的人很有帮助。 已经提到了TRACE选项。我发现这可以压倒一小部分代码,更不用说5,000行或更多。
以下是我发现有用的一些选项:
if counter < 25 then trace "A"
else trace "OFF"
say
其次pull
。所说的话会留在屏幕上,直到你进入。AskIt:
parse pull comment
say comment
say 'enter "X" to exit program'
pull continue
if Continue \= "X" then return
exit
call AskIt "In routine that loops, counter=" counter
In routine that loops counter='##
enter "X" to exit program
return
将允许您在不删除所有呼叫的情况下不间断地运行代码。 say *routine name*
。它将代码与/* comment */
插入一个容易识别的短语,以简化清理。
鉴于迈克·考肖制作上可读的Rexx怎么努力,我要问:什么“_readability issue_”你经历?假设你阅读英文,Rexx程序几乎可以完成所说的话。 –
@RossPatterson可读性本身不是w.r.t。它需要做更多的事情,将5000+ loc融入到一个脚本中。 –
根据你的工作对象,我可能会写下这个怪物:-) –