【问题标题】:GDB fails to open file when debugging f77 program调试 f77 程序时 GDB 无法打开文件
【发布时间】:2015-04-19 21:37:26
【问题描述】:

所以我不是 CS 大佬,所以请耐心等待,因为我会尽量充分地解释这一点。

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

相关代码:

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

End code

这在我运行程序时有效。找到 KEYWORDS 文件,通过 if 语句分支中的调用读入,这允许程序找到输入文件。但是,在调试时,exst 始终为 false,从而阻止正确读入,并在以后通过逻辑检查失败。

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

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

【问题讨论】:

    标签: gdb fortran


    【解决方案1】:

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

    通常当出现此类问题时,它来自环境差异。典型的来源是当前工作目录、命令行参数或环境变量。拥有一个可以正确调用程序的包装脚本也是相当常见的,但是当在 gdb 中运行时,一个人不使用该包装,然后不正确地复制了它提供的设置。 .gdbinit 中的代码与 gdb 内部的环境混在一起,但也不太常见。因此,请务必在 gdb 等中使用 pwd 仔细检查内容。

    【讨论】:

    • 我已确保在调试会话期间我位于正确的目录中。将检查 .gdbinit 建议
    猜你喜欢
    • 2011-08-17
    • 2020-02-09
    • 1970-01-01
    • 2013-04-21
    • 2023-04-10
    • 1970-01-01
    • 1970-01-01
    • 2015-10-07
    • 1970-01-01
    相关资源
    最近更新 更多