我有一个简单的c ++程序,我试图调试,但gdb找不到库的目标文件(或没有调试信息可用),它似乎也找不到我的可执行文件的调试符号.
我在OSX 10.5.8上,使用macports,我用我的代码编译
g ++ - mp-4.5 -Wall -pedantic -std = c ++ 0x -g -ggdb -I/opt/local/include -L/opt/local/lib -lgsl -static-libstdc ++ MCMC-simplex.cpp -o mcmc
(只有一个文件,g ++ - mp-4.5是gcc/g ++ 4.5的macports可执行文件)
当我尝试在生成的可执行文件上运行gdb时,我收到表单的许多错误消息(在启动时)
警告:找不到对象文件"/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_ports_lang_gcc45/work/build/i386-apple-darwin9/libgcc/trunctfdf2_s.o" - 没有可用的调试信息".. /../../gcc-4.5.0/libgcc/../gcc/config/soft-fp/trunctfdf2.c".
这对我来说表明macports在构建过程中有一个bug(似乎gdb正在寻找临时构建目录中的目标文件).
我应该补充一点,当我尝试在gdb(Apple提供的那个)中查看我的程序列表时,它会尝试查找一个随机.s文件/var/tmp,这对我来说听起来像一个汇编程序文件.这就是为什么我说它似乎无法找到我的程序的调试符号.
当我尝试MacPorts gdb 7.1时,我明白了
警告:`/var/folders/Xa/XaqHO9PeEC8K-Nrd0L9xWk+++TM/-Tmp-//cc2IvFto.o':无法打开读取符号:没有这样的文件或目录.(没有找到调试符号)......完成了.
并且没有Apple的gdb发出的许多错误消息(尽管最终结果是相同的).
有没有人遇到过这个问题,想出了解决方案?