首页 > 解决方案 > 从文本文件读取时,GDB 调试器在 Fortran 90 READ 命令上挂起

问题描述

我使用以下命令将 fortran 文件编译为可执行文件 (sei.exe)。

gfortran -g -fno-align-commons -c Creat2.for Bessel.for Kei.for
gfortran -g -fno-align-commons *.o D12e.for -o sei.exe

然后我通过键入使用 gdb 调试器

gdb sei

然后我键入以下内容以使用文本文件输入运行它

run < input.inp

它开始运行,但随后挂起。

我键入 Ctrl-C 中断它,然后它给我以下结果 错误

[New Thread 9052.0x42e4]
[New Thread 9052.0x32fc]
[New Thread 9052.0x5020]
[New Thread 9052.0x1d6c]
At line 408 of file Input.for (unit = 5, file = 'stdin')
Fortran runtime error: [New Thread 9052.0x5114]
End of file

Error termination. Backtrace:

Program received signal SIGINT, Interrupt.
[Switching to Thread 9052.0x5114]
0x762b1985 in KERNELBASE!CtrlRoutine () from C:\WINDOWS\SysWOW64\KernelBase.dll

第 408 行是我打断它时所在的位置,也就是那行

READ (*,20) TITLE

这是围绕该行的代码

      DO 1665 I=1, MAXTIT
         READ (*,20) TITLE
         IF (LEN_TRIM(TITLE) .EQ. 0)GOTO 1664
         READ (TITLE,FMT=30,ERR=1664)DUMY1, DUMY2, DUMY3, DUMY4,
 1                                   DUMY5, DUMY6, DUMY7, DUMY8

任何想法如何停止它挂起,并使用文件输入进行调试?谢谢

标签: fortrangdbgfortran

解决方案


推荐阅读