提前准备:
1. 要debug的程序debug选项要设置为*SOURCE/*ALL
2. 把要调试的程序所在的lib加入当前libl
Batch Job Debug步骤如下:
1. 使用SBMJOB提交程序, 最好把job name起个易辨别的, HOLD选项一定要定义为*yes, 作用是设置job为挂起状态, job在批处理队列里等待执行, 一旦发出了Release命令作业立即开始运行;
2. 使用WRKSBMJOB命令获取上一步提交的job的job name, user name, job number信息; 具体用法是进入WRKSBMJOB后使用option 5 Work with, 然后可以看到job name, user name, job number信息; 记下这3项信息.
3. 使用STRSRVJOB, 填入上一步获取的3项信息, 然后Enter执行;
4. 使用STRDBG命令, 输入要调试的程序名, 然后Enter执行, 对应的source code就会显示出来, 此时先不要加断点;
5. 使用F21调出命令行, 使用WRKSBMJOB将要调试的batch给Release了;
提示信息为:
The serviced job has been released from the job queue. Press Enter to
start the job or F10 to enter debug commands for that job.
6. 然后使用F10进入命令行为该job输入debug命令, 注意,不要执行程序,因为还没加断点!!!
7. 在命令行上使用WRKMODSRC (Work Module Source), 然后Enter执行, source code显示出来, 使用F6加断点, 加完断点使用F3退出DSPMODSRC, 再使用F12退出命令行, 此时第5步的提示信息会再次显示出来;
8. 此时输入Enter开始执行挂起的job, job开始运行;
9. 程序会中断在断点处, 根据普通调试方法开始调试;
10. 程序或job结束, 使用ENDDBG以及ENDSRVJOB命令结束整个debug.
需要注意的是, 如果batch job中有dsply或者dspf界面交互时, job会被挂起处于MESSAGE WAIT状态, 因为batch job 无法处理交互信息.
稍后会加入一个实际调试的例子
阅读(4076) | 评论(0) | 转发(0) |