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

时间:2015-02-18 18:31:10

标签: gdb fortran

所以我不是一个CS大家伙,所以请耐心等待,因为我试图充分解释这一点。

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

相关代码:

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

End code

当我运行程序时,这会起作用。找到KEYWORDS文件,通过if语句分支内的调用读入,该程序允许程序查找输入文件。但是,在调试时,exst总是为false,阻止正确读入,以及稍后通过逻辑检查失败。

GDB是否需要某些权限?在我自己的搜索中我唯一能找到的是签名/未签名报告文件大小不兼容的可能问题,但除了理解签名和无符号值之外,解释还有点过头。

感谢任何帮助。将尽力在需要时提供更多信息。

1 个答案:

答案 0 :(得分:0)

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

通常,当出现这种问题时,它来自环境差异。典型的源是当前工作目录,命令行参数或环境变量。有一个正确调用程序的包装器脚本也是相当普遍的,但是当在gdb中运行时,不会使用包装器,然后不正确地复制它提供的设置。不太常见但仍然可能是.gdbinit中的代码弄乱了gdb中的环境。所以一定要仔细检查gdb内的pwd等等。