我有一个要调试的简单 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 在其构建过程中存在错误(似乎 gdb 正在临时构建目录中寻找目标文件)。
我应该补充一点,当我尝试在 gdb(Apple 提供的那个)中查看我的程序列表时,它会尝试在 中查找一个随机.s
文件/var/tmp
,这对我来说听起来像是一个汇编文件。这就是为什么我说它似乎也无法为我的程序找到调试符号。
当我尝试 MacPorts gdb 7.1 时,我得到
警告:`/var/folders/Xa/XaqHO9PeEC8K-Nrd0L9xWk+++TM/-Tmp-//cc2IvFto.o':无法打开以读取符号:没有这样的文件或目录。(未找到调试符号)...完成。
并且 Apple 的 gdb 给出的许多错误消息都没有(尽管最终结果是相同的)。
有没有人遇到过这个问题,并提出了解决方案?