Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1079119
  • 博文数量: 106
  • 博客积分: 9093
  • 博客等级: 中将
  • 技术积分: 2770
  • 用 户 组: 普通用户
  • 注册时间: 2006-06-01 17:22
文章分类

全部博文(106)

文章存档

2014年(1)

2012年(29)

2011年(32)

2010年(20)

2008年(24)

分类: 系统运维

2012-06-12 11:19:04

  •   排错

编译程序的时候总会出现各种错误信息,如何才能快速的解决这些问题那?

我的基本思路是先解决严重度大的,因为有好多严重度低的错误是由高的引起的。

看上面的出错信息,有2个严重度为40的错误,如果能解决掉的话严重度低的一些错误就会随之消失。

一般40的错误多为在你的编译列表中找不到你在程序中声明的文件。上面的就是如此。

我一般的解决思路是先解决40度错误,然后解决*RNF703030度错误,然后再解决其他30度错误。

wrksplf,然后SHIFT + F6找到你刚编译完程序的spooled file(假脱机文件),打开,在Control 处输入Bbottom),然后Page Up,找到我上面贴出来的那部分,然后复制一下40度错误的msg id,这里是*RNF2120,然后粘贴到Find处进行搜索,找到出错的地方。记录下来后,返回到程序进行修改。如此反复直到没有错误为止。

  • 调试

有时候会遇到程序输出和你预想的结果,这个时候我们就需要调试程序了。RPGLE如何调试那??

首先,确保你在编译程序的时候,参数DBGVIEW*LIST*SOURCE,本人一般使用*LIST

其次,看看你的程序里是不是含有事务处理(commit/rollback),如果有,在调试之前需要执行命令STRCMTCTL开启事务处理,调试结束后执行命令ENDCMTCTL结束事务处理。

再次,确保想调试的程序的运行时环境(即通常说的库列表LIBL.

最后,执行命令STRDBG开启调试之门。命令STRDBG里有个UPDPROD参数,当我们的程序中含有要更新的文件的时候,要设置UPDPROD*YES。调试结束的时候要使用命令ENDDBG来结束调试。

执行命令STRDBG并不是直接就开始调试了,执行它是为了设置断点,加载想要调试的module等等。F6设置断点;F14添加要调试的module,还可以用opt 5进入module设置断点等。设置好断点等后按F12退出,然后使用CALL来开始调试,F10是单步走;F12是直接到设定好的断点处;F11查看变量的值。更多信息查看HELP。如图


加分练习

1.      找一个前面写的程序进行一下排错和调试

2.      研究一下help里的内容


阅读(1825) | 评论(0) | 转发(1) |
给主人留下些什么吧!~~