¿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!


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

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
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.