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!


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

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
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.