Come compilare emacs con simboli di debug?


9

Sto riscontrando problemi nel leggere il codice sorgente di emacs in gdb. Penso che mi manchino i simboli di debug.

Seguendo un suggerimento di https://stackoverflow.com/a/4298982/2752242 , ho provato:

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

Ma non ha funzionato.

Ci sono istruzioni per la compilazione con simboli di debug? Grazie!


Questo è il modo che sto costruendo, se ho bisogno di debug: CFLAGS='-O0 -ggdb -g3' ./configure --enable-checking --enable-asserts. Non sono un professionista, ma non sono sicuro che tu possa dare argomentazioni su configurecome l'hai fatto. Di solito, quelli vengono prima di chiamare il programma e configura prende quelli dall'ambiente con cui viene chiamato, ma forse è qualcosa di nuovo ...
wvxvw,

1
Il passaggio tramite argomenti è raccomandato nel manuale: gnu.org/savannah-checkouts/gnu/autoconf/manual/autoconf-2.69/…
npostavs

Risposte:


4

Sono stato in grado di ottenere i numeri di riga in gdb se eseguo il emacsclientbinario che viene prodotto da make that live emacs/lib-src. Se lo faccio make installe provo a collegare un debugger al file binario installato, nessun numero di riga.

Questo è ciò che ha funzionato per me:

$ 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

Questo non funziona:

$ 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
Potrebbe benissimo essere che la fase di installazione richiami un'utilità che rimuove i simboli di debug.
Wasamasa,

Perché passi -O0?
Heinrich Hartmann,

-O0 disabilita le ottimizzazioni. Le ottimizzazioni compromettono la tua capacità di scorrere il codice in quanto non esiste più una mappatura tra il codice compilato e il file di origine.
Jobevers
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.