温馨提示×

ubuntu如何调试fortran

小樊
39
2026-09-25 12:04:51
栏目: 智能运维

在 Ubuntu 上调试 Fortran 程序,通常分为编译、运行、调试、性能分析几个环节。下面给你一套实用流程。


一、安装必要工具

1. 编译器

常用有 gfortran(GCC 的 Fortran 编译器):

sudo apt update
sudo apt install gfortran

如果你用 Intel 编译器(ifort),需自行安装 OneAPI。

2. 调试器

推荐 gdb:

sudo apt install gdb

3. 可选工具

  • valgrind:内存错误检测
  • gprof / perf:性能分析
  • ddd:图形化 gdb(可选)
sudo apt install valgrind

二、编译(关键)

⚠️ 一定要加调试信息

gfortran -g -O0 -Wall -fcheck=all -o test test.f90

参数说明:

  • -g:生成调试信息
  • -O0:关闭优化(否则变量可能被优化掉)
  • -Wall:显示警告
  • -fcheck=all:数组越界、未初始化等检查(非常有用)

三、使用 GDB 调试 Fortran

1. 启动调试

gdb ./test

2. 常用 GDB 命令

break main          # 在 main 处断点
run                 # 运行
next                # 单步(不进入函数)
step                # 单步(进入函数)
print a             # 打印变量
print array(1:10)  # 打印数组
list                # 查看源码
bt                  # 查看调用栈
quit

3. Fortran 特有注意点

  • 变量名可能带后缀(如 a_),可用:
info variables
  • 模块变量:
print modname::var

四、运行时错误排查

1. 数组越界

编译时加:

-fcheck=all

运行时会直接报错并定位行号。

2. 段错误(Segmentation fault)

gdb ./test
run
bt

3. 内存泄漏

valgrind --leak-check=full ./test

五、图形化调试(可选)

DDD

sudo apt install ddd
ddd ./test

VS Code(推荐)

安装插件:

  • Fortran
  • C/C++(用于调试)
  • 配置 launch.json 使用 gdb

六、简单示例

test.f90

program test
  implicit none
  integer :: i, a(5)
  do i = 1, 5
     a(i) = i * i
  end do
  print *, a
end program test

编译调试:

gfortran -g -O0 -fcheck=all test.f90 -o test
gdb ./test

七、常见问题

Q:gdb 看不到变量?
→ 没加 -g 或开了 -O2

Q:数组越界没报错?
→ 没加 -fcheck=all

Q:Fortran 和 C 混合?
→ 用 gdb 同样可行,注意符号名


如果你有具体错误、代码或调试场景(比如 MPI、OpenMP、数值计算),可以贴出来,我可以更针对性地帮你。

0 踩