Visual studio 2010 英特尔visual studio 2010(Fortran编译器2011)中不总是检测到未初始化变量
我正在调试模式下编译Fortran代码,使用标志/check:uninit,在properties->Fortran->runtime->check uninitialized variables下激活 我注意到,当我运行代码时,有时正确执行会停止指示未初始化的变量,而有时它会毫无问题地继续运行,只是在我的代码中我发现某个地方有一个值为-6.277438562204192D+066的变量。为什么编译器不总是能够检测未初始化的变量Visual studio 2010 英特尔visual studio 2010(Fortran编译器2011)中不总是检测到未初始化变量,visual-studio-2010,initialization,fortran,intel-fortran,Visual Studio 2010,Initialization,Fortran,Intel Fortran,我正在调试模式下编译Fortran代码,使用标志/check:uninit,在properties->Fortran->runtime->check uninitialized variables下激活 我注意到,当我运行代码时,有时正确执行会停止指示未初始化的变量,而有时它会毫无问题地继续运行,只是在我的代码中我发现某个地方有一个值为-6.277438562204192D+066的变量。为什么编译器不总是能够检测未初始化的变量 在我提到的特殊情况下,未检测到的变量是在模块中定义的全局变量,我不
在我提到的特殊情况下,未检测到的变量是在模块中定义的全局变量,我不确定这是否是一个问题,也许编译器只能检测局部未初始化变量?如果是这种情况,如何检测全局未初始化变量?通常,我在运行时使用
valgrind
检测未初始化变量
我不确定ifort
在编译时需要什么作为参数,但是对于gfortran
您还需要启用优化:-Wuninitialized-O
可能会有帮助
编辑:使用ifort
检查未初始化的变量时,必须禁用优化
编辑:我不知道如何使用Windows查找未初始化的变量,但我提供了一个:
我们目前确实提供了一种有限形式的未初始化运行时
变量检查,尽管它可能太有限而没有用处。
拥有Fortran Studio XE或并行Studio XE许可证的用户(或
Cluster Studio(XE)可以使用静态分析功能
整个程序的正确性检查,包括未初始化的变量
侦查它也不是完美的,但它可以非常有帮助
也许你可以使用这个工具 谢谢,但我忘了提到我使用的是Windows而不是Linux,Valgrind只在Linux上运行。