在 CentOS 上调试 Fortran 程序,通常分三步:编译 → 运行 → 调试。下面给你一套最实用、最常见的做法。
CentOS 一般用 gfortran:
sudo yum install gcc-gfortran
验证:
gfortran --version
-ggfortran -g -O0 test.f90 -o test
说明:
-g:生成调试信息-O0:关闭优化(否则变量可能被优化掉,调试看不了)如果是多文件:
gfortran -g -O0 a.f90 b.f90 -o main
gdb ./test
| 功能 | 命令 |
|---|---|
| 运行 | run |
| 设置断点 | break 行号 |
| 在子程序中断 | break 子程序名 |
| 单步 | step |
| 下一步 | next |
| 查看变量 | print 变量名 |
| 查看数组 | print arr(1:10) |
| 查看调用栈 | backtrace |
| 继续 | continue |
| 退出 | quit |
示例:
break 20
run
print x
step
gfortran -g -O0 -fcheck=all test.f90 -o test
会检测:
运行报错会直接指出位置。
如果不想用 GDB:
print *, 'x =', x
或写日志:
open(10, file='debug.log')
write(10, *) 'step', i, x
close(10)
❌ 用了 -O2 还奇怪变量看不到
✅ 调试一定用 -O0 -g
❌ 子程序名大小写问题
✅ Fortran 默认小写,GDB 里用小写
如果你愿意,可以告诉我:
我可以直接帮你定位问题。