Comment compiler des emacs avec des symboles de débogage?

9

J'ai du mal à parcourir le code source d'emacs dans gdb. Je pense que je manque des symboles de débogage.

Suite à une suggestion de https://stackoverflow.com/a/4298982/2752242 , j'ai essayé:

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

Mais cela n'a pas fonctionné.

Existe-t-il des instructions sur la compilation avec des symboles de débogage? Merci!

jobevers
la source
Voilà comment je suis construire, si je dois debug: CFLAGS='-O0 -ggdb -g3' ./configure --enable-checking --enable-asserts. Je ne suis pas un pro, mais je ne suis pas sûr que vous puissiez expliquer configurecomment vous l'avez fait. Habituellement, ceux-ci viennent avant d'appeler le programme, et configure prend ceux de l'environnement avec
lequel
1
Il est recommandé de passer via des arguments dans le manuel: gnu.org/savannah-checkouts/gnu/autoconf/manual/autoconf-2.69/…
npostavs

Réponses:

4

J'ai pu obtenir des numéros de ligne dans gdb si j'exécute le emacsclientbinaire produit par make that lives in emacs/lib-src. Si je le fais make installet que j'essaye de joindre un débogueur au binaire installé, pas de numéro de ligne.

C'est ce qui a fonctionné pour moi:

$ 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

Cela ne fonctionne pas:

$ 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
la source
3
Il se pourrait très bien que l'étape d'installation appelle un utilitaire qui supprime les symboles de débogage.
wasamasa
Pourquoi passez-vous -O0?
Heinrich Hartmann
-O0 désactive les optimisations. Les optimisations gâchent votre capacité à parcourir le code car il n'y a plus de mappage entre le code compilé et le fichier source.
jobevers