Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2012/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Visual studio `在Visual Studio中调试英特尔Fortran时没有可用的源代码_Visual Studio_Visual Studio 2012_Fortran_Intel Fortran - Fatal编程技术网

Visual studio `在Visual Studio中调试英特尔Fortran时没有可用的源代码

Visual studio `在Visual Studio中调试英特尔Fortran时没有可用的源代码,visual-studio,visual-studio-2012,fortran,intel-fortran,Visual Studio,Visual Studio 2012,Fortran,Intel Fortran,我正在Microsoft Visual Studio 2012+英特尔Visual Fortran上调试以下Fortran代码: program customarray implicit none real, allocatable, dimension(:):: vector integer :: nelements, i real :: sum print *, 'enter how many values you have' read *, nelements allocate(vec

我正在Microsoft Visual Studio 2012+英特尔Visual Fortran上调试以下Fortran代码:

program customarray

implicit none
real, allocatable, dimension(:):: vector
integer :: nelements, i
real :: sum

print *, 'enter how many values you have'
read *, nelements
allocate(vector(nelements))
print *, 'enter the values'
sum = 0.0

do i=1,nelements
    read *, vector(i)
    sum = sum+vector(i)
end do
    
end program customarray
当我使用调试器单步执行代码时,请使用“单步执行”工具。一切正常。但是当我到达最后一行时

end program customarray
我在以下对话框中得到一个提示:

我不明白为什么我会犯这个错误。我很沮丧,因为当我在没有调试的情况下运行时,它运行平稳,并且没有显示相同的错误。

在使用步骤结束程序后,您将输入编译器生成的代码,以完成程序运行并返回Windows

单步执行将输入程序执行的任何函数,甚至内部库的设置可能与Fortran略有不同。看

使用Step Over或Step Out,您应该能够跳过这段完成的内部代码,但是使用Step Into,您会要求调试器将您带到那里

当然,该地区没有可用的源代码,因为在那里执行的代码不是您的用户代码。它可能是也可能不是编译的C代码,甚至是编译器直接插入其中的部分机器代码


类似的行为可能会在程序开始时发生。您还可以在准备环境以执行代码时输入程序执行的过程。如果您只想调试代码,请在与可执行语句对应的行开始调试。

程序完成后,您希望哪种源代码可用?为什么会令人沮丧?你完成了整个计划,工作完成了。或者不?单步执行可能只是单步执行完成运行并返回windows的代码。这里没有什么有趣的东西,如果它不是您的Fortran代码,那就是一些内部簿记。你想在那里看什么?为什么不能使用Step over或VS等效工具?我没想到程序会输出任何源文件。工作完成了,是的。问题是:我想了解出现此错误的原因,以及在逐步执行代码时如何避免此错误。它不是错误,而是您的信息。它是错误,但调试完成后将开始。但即使是一开始,也有一些方法可以调试。事实上,我刚刚意识到,跨步并不能真正起作用。从第1行开始调试并单步执行程序时,程序会跳转到名为crt0.c的源文件。这是非常烦人的,我只想一步一步地浏览我自己的源文件,而不想跳进所有其他的东西。我应该开始一个新问题还是取消接受这个问题的答案?好吧,不要跳过整个程序!只有当您确实想跳过某些内容时,才按“跳过”。否则使用步骤进入!你可以在任何时候拒绝任何回答。我不建议现在就开始一个新问题。好吧,假设我在fortran程序的第1行放置了一个断点。然后,我点击第二步。它跳到crt0.c。然后我停止调试。然后我点击进入。它跳到crt0.c。同样的事情。在这种情况下,似乎出于某种原因,“跨过”和“跨入”之间没有区别。只需在程序的第一个可执行行设置断点。您希望在程序开始时调试什么?对你来说没有什么有趣的。有些东西,但你不喜欢。所以,如果你不喜欢,就不要从那里开始。