¿Cómo compilar emacs con símbolos de depuración?

9

Tengo problemas para leer el código fuente de emacs en gdb. Creo que me faltan símbolos de depuración.

Siguiendo una sugerencia de https://stackoverflow.com/a/4298982/2752242 , probé:

./configure CFLAGS="-ggdb3 -O0" CXXFLAGS="-ggdb3 -O0" LDFLAGS="-ggdb3" --with-gif=no --prefix=$HOME/local/apps/emacs-24.4/

Pero eso no funcionó.

¿Hay instrucciones para compilar con símbolos de depuración? ¡Gracias!

jobevers
fuente
Esta es la forma en que estoy construyendo, si necesito depuración: CFLAGS='-O0 -ggdb -g3' ./configure --enable-checking --enable-asserts. No soy un profesional, pero no estoy seguro de que pueda dar argumentos sobre configurela forma en que lo hizo. Por lo general, los que vienen antes de llamar al programa y configurar lleva las de medio ambiente se llama con, pero tal vez es algo nuevo ...
wvxvw
1
Se recomienda pasar por argumentos en el manual: gnu.org/savannah-checkouts/gnu/autoconf/manual/autoconf-2.69/…
npostavs

Respuestas:

4

Pude obtener números de línea en gdb si ejecuto el emacsclientbinario producido por make en el que vive emacs/lib-src. Si lo hago make installe intento adjuntar un depurador al binario instalado, no hay números de línea.

Esto es lo que funcionó para mí:

$ CFLAGS="-ggdb3 -O0" CXXFLAGS="-ggdb3 -O0" LDFLAGS="-ggdb3" ./configure --enable-checking --with-gif=no --prefix=$HOME/local/apps/emacs-24.4/
$ make
$ gdb lib-src/emacsclient

Esto no funciona:

$ CFLAGS="-ggdb3 -O0" CXXFLAGS="-ggdb3 -O0" LDFLAGS="-ggdb3" ./configure --enable-checking --with-gif=no --prefix=$HOME/local/apps/emacs-24.4/
$ make
$ make install
$ gdb $HOME/local/apps/emacs-24.4/bin/emacsclient
jobevers
fuente
3
Bien podría ser que el paso de instalación invoca una utilidad que elimina los símbolos de depuración.
wasamasa
¿Por qué pasas -O0?
Heinrich Hartmann
-O0 desactiva las optimizaciones. Las optimizaciones confunden su capacidad de recorrer el código ya que ya no hay una asignación entre el código compilado y el archivo fuente.
jobevers