调试f77程序时GDB无法打开文件

调试f77程序时GDB无法打开文件,gdb,fortran,Gdb,Fortran,所以我不是一个大CS的家伙,所以请容忍我,因为我试图充分解释这一点 在工作中,我使用Fortran 77编写的程序进行建模。我们的调试一直是个问题,因为一些IT约束超出了我的控制范围。当我们尝试使用GDB时,编译器将加载。运行程序时,它会通过内部逻辑检查失败。程序正在查找输入文件,但找不到,因为GDB没有加载另一个文件,该文件包含输入文件和其他相关文件可能所在的所有目录列表 有关守则: ... logical exst ... INQUIRE(FILE='KEYWORDS',EXTST=exst

所以我不是一个大CS的家伙,所以请容忍我,因为我试图充分解释这一点

在工作中,我使用Fortran 77编写的程序进行建模。我们的调试一直是个问题,因为一些IT约束超出了我的控制范围。当我们尝试使用GDB时,编译器将加载。运行程序时,它会通过内部逻辑检查失败。程序正在查找输入文件,但找不到,因为GDB没有加载另一个文件,该文件包含输入文件和其他相关文件可能所在的所有目录列表

有关守则:

...
logical exst
...
INQUIRE(FILE='KEYWORDS',EXTST=exst)
if(exst)then
...
endif

End code
当我运行程序时,这确实有效。关键字文件被找到,通过if语句分支中的调用读入,这允许程序查找输入文件。然而,在调试时,exst总是false,这会阻止正确的读入,并在以后通过逻辑检查失败

GDB是否需要某些权限?我在自己的搜索中发现的唯一一件事是关于已签名/未签名报告的文件大小不兼容的可能问题,但除了理解已签名和未签名的值是什么之外,我对此的解释有点过头了


感谢您的帮助。将在需要时尝试提供更多信息。

gdb不会更改其运行的程序的权限。与往常一样,它在相同的用户id下运行


通常,当这种问题出现时,它来自于环境差异。典型的源是当前工作目录、命令行参数或环境变量。有一个正确调用程序的包装器脚本也是相当常见的,但是在gdb中运行时,不使用包装器,然后不正确地复制它提供的设置。
.gdbinit
中的代码不太常见,但仍然有可能与gdb中的环境发生冲突。因此,请确保在gdb内部使用
pwd
进行双重检查,等等。

在调试会话期间,我已确保自己位于正确的目录中。将检查.gdbinit建议