在 Ubuntu 下调试 Fortran 程序,通常步骤如下:
使用 gfortran 编译时一定要加 -g 选项:
gfortran -g -O0 -o myprog myprog.f90
说明:
-g:生成调试信息-O0:关闭优化(否则变量可能被优化掉,调试困难)gfortran -g -O0 main.f90 sub.f90 -o myprog
gdb ./myprog
| 功能 | 命令 |
|---|---|
| 运行程序 | run |
| 设置断点 | break 行号 或 break 子程序名 |
| 查看断点 | info break |
| 单步执行 | step(进入子程序) |
| 下一步 | next |
| 查看变量 | print 变量名 |
| 查看所有变量 | info locals |
| 继续运行 | continue |
| 退出 | quit |
示例:
break 20
run
print x
next
use 模块,否则 GDB 看不到print a(1:10)
print obj%field
编译时加:
gfortran -g -O0 -fcheck=all -o myprog myprog.f90
运行时会直接报错并定位行号。
gdb ./myprog
run
bt # backtrace,查看调用栈
如果你不想用命令行:
myprog.f90:
program main
integer :: i, s
s = 0
do i = 1, 5
s = s + i
end do
print *, s
end program
调试:
gfortran -g -O0 myprog.f90 -o myprog
gdb ./myprog
break 4
run
print s
如果你愿意,可以: