¿Cómo depuro los programas C ++ 0x en MacPorts gcc 4.5?
Tengo un programa simple de C ++ que estoy tratando de depurar, pero gdb no puede encontrar el archivo de objeto para las bibliotecas (o no hay información de depuración disponible), y tampoco parece capaz de encontrar los símbolos de depuración para mi ejecutable.
Estoy en OSX 10.5.8, con macports, y compilo mi código con
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
(solo hay un archivo y g ++ - mp-4.5 es el ejecutable de macports para gcc / g ++ 4.5)
Cuando intento ejecutar gdb en el ejecutable resultante, recibo muchos mensajes de error (al inicio) del formulario
advertencia: No se pudo encontrar el archivo de objeto "/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" - no hay información de depuración disponible para ".. /../../gcc-4.5.0/libgcc/../gcc/config/soft-fp/trunctfdf2.c ".
lo que para mí indica que macports tiene un error durante su compilación (parece que gdb está buscando los archivos de objetos en el directorio de compilación temporal).
Debo agregar que cuando trato de ver la lista de mis programas en gdb (el proporcionado por Apple), intenta buscar un azar.s
presentar en/var/tmp
, que para mí suena como un archivo ensamblador. Por eso digo que tampoco parece capaz de encontrar los símbolos de depuración para mi programa.
Cuando pruebo MacPorts gdb 7.1, obtengo
advertencia: `/var/folders/Xa/XaqHO9PeEC8K-Nrd0L9xWk+++TM/-Tmp-//cc2IvFto.o ': no se puede abrir para leer símbolos: No existe tal archivo o directorio. (no se encontraron símbolos de depuración) ... hecho.
y ninguno de los muchos mensajes de error que da gdb de Apple (aunque el resultado final es el mismo).
¿Alguien ha encontrado este problema y se le ocurrió una solución?