翻看了Intel Fortran 的手册,只有 module 变量的查看规则。没有 common 变量的查看规则。
根据我个人的理解,common 只是变量的一个属性,而不是全局变量,应该是无法查看的。
其实查找错误的方法有很多。这个问题可以通过“数据断点”来实现。
如下代码:
[Fortran] 纯文本查看 复制代码 common /x/ a , b , c
real a , b , c
a = 3.0
b = 4.0
c = 5.0
call sb()
call s()
read(*,*)
end
subroutine s()
common /x/ a , b , c
a = a+1 !// 此处修改了 a
write(*,*) a
end
subroutine sb()
real :: a
a = 4444.0
write(*,*) a
end
首先在 b=4.0 出下断点,并运行至该处。
此时,我们希望查找后面对变量 a 进行了改变的代码行。
第一步,找出 a 的内存地址。
点击调试菜单,窗口,即时。
在即时窗口输入 loc(a) ,得到其内存地址:#00118AA0
有可能不是十六进制的。你可以自己转成十六进制,也可以在局部变量窗口右键,选择“十六进制显示”进行切换。
第二步,插入数据断点
点击调试菜单,断点,新建数据断点。
然后直接点击调试的“继续”
第三步,程序会自动在修改了变量 a 的内存值时停下来。
|