在 Ubuntu 上调试 Fortran 程序,通常分为编译、运行、调试、性能分析几个环节。下面给你一套实用流程。
常用有 gfortran(GCC 的 Fortran 编译器):
sudo apt update
sudo apt install gfortran
如果你用 Intel 编译器(ifort),需自行安装 OneAPI。
推荐 gdb:
sudo apt install gdb
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 ./test
break main # 在 main 处断点
run # 运行
next # 单步(不进入函数)
step # 单步(进入函数)
print a # 打印变量
print array(1:10) # 打印数组
list # 查看源码
bt # 查看调用栈
quit
a_),可用:info variables
print modname::var
编译时加:
-fcheck=all
运行时会直接报错并定位行号。
gdb ./test
run
bt
valgrind --leak-check=full ./test
sudo apt install ddd
ddd ./test
安装插件:
launch.json 使用 gdbtest.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、数值计算),可以贴出来,我可以更针对性地帮你。