我尝试使用gdb 4.8调试Fortran 95程序。当我遇到断点(或我尝试调试的错误)时,我无法使用info
命令打印有关局部变量的任何信息。运行No symbol tape information available
时,我也会收到bt full
错误。
我不相信这与gdb的版本有关,因为我第一次尝试从Homebrew安装版本并得到了相同的错误。然后我删除了Homebrew安装,并从源代码编译并安装了最新的gdb版本。我的Fortran文件使用-g
标志和-fbacktrace
标志进行编译,并且没有明确的优化标志,但我尝试使用-O0
,-O1
,{{1 }和-O2
。所有人都会犯同样的错误。
可能相关的是,在运行代码时,我收到大量警告。这是一个小摘录:
-O0
我已通过Homebrew安装warning: `/private/tmp/gcc-dmSW1S/gcc-4.9.2/build/x86_64-apple-darwin14.0.0/libgfortran/.libs/pow_c8_i4.o': can't open to read symbols: No such file or directory.
warning: `/private/tmp/gcc-dmSW1S/gcc-4.9.2/build/x86_64-apple-darwin14.0.0/libgfortran/.libs/pow_c8_i8.o': can't open to read symbols: No such file or directory.
warning: `/private/tmp/gcc-dmSW1S/gcc-4.9.2/build/x86_64-apple-darwin14.0.0/libgfortran/.libs/pow_i16_i16.o': can't open to read symbols: No such file or directory.
warning: `/private/tmp/gcc-dmSW1S/gcc-4.9.2/build/x86_64-apple-darwin14.0.0/libgfortran/.libs/pow_i16_i4.o': can't open to read symbols: No such file or directory.
warning: `/private/tmp/gcc-dmSW1S/gcc-4.9.2/build/x86_64-apple-darwin14.0.0/libgfortran/.libs/pow_i16_i8.o': can't open to read symbols: No such file or directory.
warning: `/private/tmp/gcc-dmSW1S/gcc-4.9.2/build/x86_64-apple-darwin14.0.0/libgfortran/.libs/pow_i4_i16.o': can't open to read symbols: No such file or directory.
warning: `/private/tmp/gcc-dmSW1S/gcc-4.9.2/build/x86_64-apple-darwin14.0.0/libgfortran/.libs/pow_i4_i4.o': can't open to read symbols: No such file or directory.
warning: `/private/tmp/gcc-dmSW1S/gcc-4.9.2/build/x86_64-apple-darwin14.0.0/libgfortran/.libs/pow_i4_i8.o': can't open to read symbols: No such file or directory.
warning: `/private/tmp/gcc-dmSW1S/gcc-4.9.2/build/x86_64-apple-darwin14.0.0/libgfortran/.libs/pow_i8_i16.o': can't open to read symbols: No such file or directory.
,但gcc
返回which gcc
而不是/usr/bin
,因此这可能是默认的Mac安装。 /usr/local/bin
不存在。可以提供所需的任何其他信息。
答案 0 :(得分:0)
您正在使用足够古老的gdb
版本,它无法从使用gcc 4.9编译的对象中读取调试符号。 GDB的4.x版本至少已有15年的历史,可以追溯到编译器的gcc 2.95 / egcs时代。许多ABI和调试符号更改使gdb 4.x不适合调试使用GCC 4.9编译的对象。
对于使用GCC 4.9和默认调试符号输出(DWARF4 iirc)编译的对象,您需要GDB 7.5.1或更高版本。目前的GDB版本是7.9。