我正在使用英特尔Fortran和Microsoft Visual Studio 2012.在调试模式下,第21行的断点用于以下虚拟程序:
program hello
implicit none
integer, dimension(2,2) :: Array
type Test
integer :: a
integer :: b
integer :: c
end type Test
integer::i
type (Test) :: TestVariable
i=1
Array(1,1) = 22
Array(1,2) = 2
Array(2,1) = 22
Array(2,2) = 25
TestVariable%a = 1
TestVariable%b = 2
TestVariable%c = 3
print *, Array(1,1)
print *, Array(2,2)
print *, TestVariable%b
print *, ubound(Array)
end program Hello
在第21行(我的断点),变量i
已定义并可从本地窗口访问。也可以使用以下命令从命令窗口访问它:
Debug.Print i
现在我正在探索的是Debug.EvaluateStatement
功能。
Debug.EvaluateStatement i
按原样返回1.
Debug.EvaluateStatement i+i
按原样返回2。
Debug.EvaluateStatement 1
按原样返回1.
Debug.EvaluateStatement 1+1 returns 2
,应该如此。
Debug.EvaluateStatement i+1
会抛出以下错误:
Undefined address
为什么会出现此错误,我该怎么做才能阻止它并获得2(我认为是正确的)值?