GDB调试fortran程序出现“../src/libgcc/config/i386/crtfastmath.c: 没有那个文件或目录.”错误

在调试fortran95程序时 遇到的问题
GCC 版本为4.8.5
gdb (GDB)版本为 10.1
ubuntu 18.04
开始调试时 键入l列出主函数前10行 出现:src/libgcc/config/i386/crtfastmath.c: 没有那个文件或目录.”

img

qq:2636118078

原因

debugg文件的目录在别的地方(通过命令show debug-file-directory可以看出),
需要执行命令
set debug-file-directory,这条命令执行之后,断点设置之后可以正常运行

参考:

解决方法

1、使用 dir 命令设置源路径

dir /usr/src/debug

在上面的路径中。您的代码应该出现。

2、尝试使用gdb调试时,将源文件,可执行文件一同复制过去

3、 在这种情况下,调试无法正常工作,因为调试文件的位置在其他地方。

(gdb) show debug-file-directory
# 输出位下
The directory where separate debug symbols are searched for is "/usr/lib/debug"

在 gdb 中执行以下命令

(gdb) set debug-file-directory

参考:


此外,切换到更新的 gdb(可能通过gdb从其源代码编译)。

参考链接:


https://stackoverflow.com/questions/21928876/gdb-wont-load-source-file


如有问题及时沟通

朋友是否有正确安装ia32-libs呢?我们之前也遇到过这种问题,就是因为没有32位的运行库 ,直接安装即可
apt-get install ia32-libs
望采纳谢谢欧

gcc 4.6 之后不再支持 linker-style 架构。讲 arch/x86/vdso/Makefile 中,
将以 VDSO_LDFLAGS_vdso.lds 开头所在行的 "-m elf_x86_64" 替换为 "-m64"。
将以 VDSO_LDFLAGS_vdso32.lds 开头所在行的 "-m elf_x86" 替换为 "-m32"。