免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1909 | 回复: 3
打印 上一主题 下一主题

DEBUG的一个问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2005-09-16 14:43 |只看该作者 |倒序浏览
有一个程序,第一次编译为A,然后作修改,编译为B,然后DEBUG A,这样的话,在DEBUG时候看到的是修改后的程序,但是执行效果却是修改前的,不知道是否如此?
如下:
   在TA000 中有一条记录  TA000A         TA000B
                                       150.00            .00

程序:
0001.00      FTA000   UF  E           K        DISK                  
0002.00      C           *LOVAL    SETLLTA000R               40      
0003.00      C           *IN40     DOWEQ'0'                          
0004.00      C                     READ TA000R                   40  
0005.00      C   40                LEAVE                             
0006.00      C                     MOVELTA000A    TA000B            
0007.00      C                     MOVEL*ZERO     TA000A                       
0009.00      C                     UPDATTA000R                       
0010.00      C                     ENDDO                             
0011.00      C                     SETON                         LR  
编译为 TA000
然后增加一行
000800      C                     Z-ADD1         TA000A   
编译为 TA001
然后DEBUG TA000:
此时可以看到000800行,但是当程序走完这一行后,去看PF表中,结果已经变成
  TA000A         TA000B
         .00         150.00
所以看上去是执行的Z-ADD1         TA000A ,实际执行的却是
0009.00      C                     UPDATTA000R  

这种情况在一个程序编译在多个库时一定要注意,看到的并不是一定就是执行的,我也是今天做DEBUG时,没注意,结果浪费了大半天时间,不过这里面的原理不清楚,希望大虾指点。

论坛徽章:
0
2 [报告]
发表于 2005-09-17 00:10 |只看该作者

DEBUG的一个问题

猜测一下:因为程序DEBUG的时候系统会根据程序的信息去找相应的SRC,然后显示出来给你调试

如果你把这个SRC删除了,相信就无法DEBUG了

依次类推,你修改过SRC,系统根据程序本身的信息找到了这个SRC,但程序的逻辑是不会变的,所以才会出现这种情况

我觉得是这样的,程序本身的逻辑是不会变的,但是DEBUG显示的SRC就是实际的SRC,而并不是反编译出来的SRC

论坛徽章:
0
3 [报告]
发表于 2005-09-17 09:10 |只看该作者

DEBUG的一个问题

正解。通常这种问题的处理方法,是做两个source,然后编译,再调试。

论坛徽章:
0
4 [报告]
发表于 2005-09-19 08:59 |只看该作者

DEBUG的一个问题

多谢多谢!
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP