- 论坛徽章:
- 0
|
有一个程序,第一次编译为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时,没注意,结果浪费了大半天时间,不过这里面的原理不清楚,希望大虾指点。 |
|