Tengo un programa simple de C++ Estoy tratando de depurar, pero gdb no puede encontrar el archivo objeto para las bibliotecas (o no hay información de depuración disponible), y tampoco parece poder encontrar los símbolos de depuración para mi ejecutable.¿Cómo puedo depurar programas C++ 0x en MacPorts gcc 4.5?
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/optar/local/incluir -L/opt/local/lib -lgsl -static-libstdC++ MCMC-simplex.cpp -o MCMC
(sólo hay un archivo, y g ++ - mp-4,5 es el macports ejecutable para gcc/g ++ 4.5)
Cuando intento ejecutar gdb en el ejecutable resultante, recibo muchos mensajes de error (en inicio) de la forma
advertencia: No se pudo encontrar /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 de fichero objeto". o "- no hay información de depuración disponible para" ../../../gcc-4.5.0/libgcc/../gcc/config/soft-fp/trunctfdf2.c ".
que me indica que macports tiene un error durante su compilación (parece que gdb está buscando los archivos de objeto en el directorio de compilación temporal).
debo añadir que cuando trato de ver mis programas de inclusión en GDB (el proporcionado por Apple), que trata de buscar un archivo aleatorio .s
en /var/tmp
, que me suena como un archivo de ensamblador. Es por eso que digo que tampoco parece poder encontrar los símbolos de depuración para mi programa.
Cuando intento DarwinPorts GDB 7.1, recibo
advertencia: `/var/folders/Xa/XaqHO9PeEC8K-Nrd0L9xWk+++TM/-Tmp-//cc2IvFto.o ': no se puede abierto para leer símbolos: no existe dicho archivo o directorio. (no se encontraron símbolos de depuración) ... hecho.
y ninguno de los muchos mensajes de error que da el gdb de Apple (aunque el resultado final es el mismo).
¿Alguien ha encontrado este problema y ha encontrado una solución?
Lástima que no puedo hacer varias preguntas como "la mejor". ¡Gracias por la informacion sin embargo! –
Gracias! Esto ayudó al intentar usar gdb para depurar un programa fortran. Para gfortran 4.4, parece que no reconoce la parte '[= dir]' de la bandera, por lo que debes usar '-save-temps'. –