如何调试具有多个目标文件的fortran程序?

发布于 2024-12-17 23:21:44 字数 319 浏览 3 评论 0原文

我有一个 fortran 程序,它调用一些依赖的 .o 对象文件。我希望在调试时能够跨文件,这可能吗?

编译例程是这样的:

gfortran -g -o analyze.x analyze.o active.o analysis.o angles.o attach.o basefile.o beeman.o bicubic.o

其中analyze.x是可执行文件。所有 .o 文件也已使用 -g 标志进行编译。 当我(gdb)中断 main 然后尝试单步执行程序时,大多数子例程都发生在目标文件中。我想知道是否也可以单步执行目标文件代码。

I have a fortran program that calls some dependent .o object files. I would like to be able to step across files when debugging, is this possible?

the compilation routine goes something like this:

gfortran -g -o analyze.x analyze.o active.o analysis.o angles.o attach.o basefile.o beeman.o bicubic.o

where analyze.x is the executable. All of the .o files have been compiled using the -g flag as well.
When i do (gdb) break main and then attempt to step through the program, most of the subroutines take place in the object files. I was wondering if it is possible to be able to step through the object file code as well.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

落花随流水 2024-12-24 23:21:44

仅当链接到可执行文件的目标文件中包含调试信息(即已使用 -g 选项进行编译)时,此操作才有效。所以,这应该有效:

# Compile all Fortran and C files with debug info
gfortran -g -c *.f90
gcc -g -c *.c
# Link everything together
gfortran -g -o myexe *.o

This will work only if the object files linked into the executable have debug information in them, i.e. have been compiled with the -g option. So, this should work:

# Compile all Fortran and C files with debug info
gfortran -g -c *.f90
gcc -g -c *.c
# Link everything together
gfortran -g -o myexe *.o
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文