温馨提示×

centosfortran调试怎么弄

小樊
42
2026-10-15 01:41:51
栏目: 智能运维

在 CentOS 上调试 Fortran 程序,通常分三步:编译 → 运行 → 调试。下面给你一套最实用、最常见的做法。


一、准备环境(CentOS)

1. 安装编译器

CentOS 一般用 gfortran:

sudo yum install gcc-gfortran

验证:

gfortran --version

二、编译(关键:加调试信息)

2. 编译时加 -g

gfortran -g -O0 test.f90 -o test

说明:

  • -g:生成调试信息
  • -O0:关闭优化(否则变量可能被优化掉,调试看不了)

如果是多文件:

gfortran -g -O0 a.f90 b.f90 -o main

三、用 GDB 调试 Fortran

3. 启动 GDB

gdb ./test

4. 常用 GDB 命令(Fortran 场景)

功能 命令
运行 run
设置断点 break 行号
在子程序中断 break 子程序名
单步 step
下一步 next
查看变量 print 变量名
查看数组 print arr(1:10)
查看调用栈 backtrace
继续 continue
退出 quit

示例:

break 20
run
print x
step

四、常见调试技巧

5. 数组越界检查(非常重要)

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)

六、进阶(可选)

6. 使用 Visual Studio Code(CentOS + SSH)

  • 安装 Fortran 插件
  • 使用 GDB
  • 图形化断点调试,很方便

七、常见坑

❌ 用了 -O2 还奇怪变量看不到
✅ 调试一定用 -O0 -g

❌ 子程序名大小写问题
✅ Fortran 默认小写,GDB 里用小写


如果你愿意,可以告诉我:

  • 用的是 Fortran 77 / 90 / 95 / 2003?
  • 是 数值计算 / 科学计算 / 工程程序?
  • 有没有 ** segmentation fault?**

我可以直接帮你定位问题。

0 踩