2010-01-31 13 views

Respuesta

25

Simplemente adivinando, pero ¿_DictionaryTree_getNodeList está en otro archivo que no se compiló con -g?

+1

Sí, lo descubrí incluso antes de leer su respuesta. Adivina bien;) –

+8

Si estás compilando varios archivos, es mejor usar un Makefile y agregar -ggdb en los indicadores de opción de gcc. –

+0

@Manav MN sí, eso es lo que tengo, pero tengo dos comandos diferentes: uno para compilar y otro para vincular y olvidé agregar el indicador al de compilación (que en realidad es el único para el que lo necesitaba, adivinar). –

9

Tuve el mismo problema, pero en mi caso agregar -g al compilador no fue suficiente, así que utilicé -ggdb según lo sugerido por Manav.

0

Tuve el mismo problema cuando compilé un archivo usando la opción -g y sin la opción -g. para uno de los archivos, el BGF mostró número de línea sin ningún problema (incluso cuando se compila sin la opción -G) .. Y para el otro archivo, tuve que mencionar explícitamente la bandera -g ...

Cualquier idea sobre si el archivo de origen podría cargarse en tiempo de ejecución en GDB con referencias cruzadas sería una buena solución ... mapeando las líneas a las direcciones: D.

1

Tuve este mensaje de error también, pero el origen de mi problema era diferente. Si alguien sigue teniendo problemas, asegúrese de tener #include <stdio.h> en su archivo, con los corchetes apropiados alrededor de stdio.h (el mensaje de texto no aparecería si lo tuviera alrededor de stdio.h).

4

En mi caso, el problema era la inclinación de la versión entre gcc y gdb.

Después de aterrizar aquí desde la búsqueda y ninguna de estas respuestas se ajusta a mi situación, me di cuenta de que (debido a alias/symlinks/Makefile/variables de entorno) estaba usando accidentalmente un GCC más reciente (4.8.x) y un GDB anterior (7.2). El paso a una versión más nueva de GDB (7.8) solucionó el problema. Por alguna razón, usar un GCC más nuevo y un GDB anterior no funcionó.

+1

... pero (solo) ahora veo que las respuestas anteriores a otras preguntas casi idénticas tienen esta respuesta, por ej., [esto] (http://stackoverflow.com/a/20493816/3562032) y [este] (http://stackoverflow.com/a/18408197/3562032). Este último incluye información sobre * por qué * (incompatibilidad DWARF). ¡Upvotes por todos lados! –

0

Tuve este problema porque estaba depurando una biblioteca compartida sin señalar LD_LIBRARY_PATH para corregir la ubicación con los estados finales de depuración.

puede utilizar

export LD_LIBRARY_PATH=<location of the debug build of the .so file>:$LD_LIBRARY_PATH 

Esperemos que esto es útil a alguien

0

que tenía el mismo problema a pesar de que ya estaba compilando con -g2. Cambiarlo a -g3 hizo el truco.

Cuestiones relacionadas