在 Ubuntu 上调试 Fortran 程序,通常分为编译、运行、调试三个环节。下面给你一套常用且实用的做法。
Ubuntu 默认一般没有 Fortran 编译器,先安装 gfortran:
sudo apt update
sudo apt install gfortran
验证:
gfortran --version
假设你有 test.f90:
program test
implicit none
integer :: i, sum
sum = 0
do i = 1, 10
sum = sum + i
end do
print *, sum
end program test
gfortran test.f90 -o test
./test
要调试,必须加 -g:
gfortran -g -O0 test.f90 -o test
说明:
-g:生成调试信息-O0:关闭优化(否则变量可能被优化掉,调试看不了)sudo apt install gdb
gdb ./test
常用 GDB 命令(Fortran 友好):
| 命令 | 作用 |
|---|---|
break test.f90:6 |
在第 6 行设断点 |
run |
运行程序 |
next |
单步(不进入函数) |
step |
单步(进入函数) |
print sum |
打印变量 |
info locals |
查看当前作用域变量 |
continue |
继续执行 |
quit |
退出 |
示例:
break test.f90:6
run
print i
next
print sum
gfortran -g -O0 -fcheck=all test.f90 -o test
运行时会自动报错数组越界、未初始化等问题。
print *, 'i =', i
gfortran -Wall -Wextra -g test.f90 -o test
Fortran INTELLSENSElaunch.json 使用 gdbsudo apt install valgrind
valgrind ./test
sudo apt install gfortran gdb
gfortran -g -O0 -fcheck=all test.f90 -o test
gdb ./test
如果你愿意,可以告诉我:
.f 还是 .f90我可以给你更具体的调试方案。