Bagaimana cara mengkompilasi emacs dengan simbol debug?


9

Saya mengalami kesulitan berjalan melalui kode sumber emacs di gdb. Saya pikir saya kehilangan simbol debug.

Mengikuti saran dari https://stackoverflow.com/a/4298982/2752242 , saya mencoba:

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

Tapi, itu tidak berhasil.

Apakah ada instruksi tentang kompilasi dengan simbol debug? Terima kasih!


Ini adalah bagaimana saya membangun itu, jika saya perlu untuk debug: CFLAGS='-O0 -ggdb -g3' ./configure --enable-checking --enable-asserts. Saya bukan pro, tapi saya tidak yakin Anda bisa memberikan argumen dengan configurecara Anda melakukannya. Biasanya, yang datang sebelum memanggil program, dan mengkonfigurasi mengambil yang dari lingkungan yang dipanggil, tapi mungkin itu sesuatu yang baru ...
wvxvw

1
Melewati argumen direkomendasikan dalam manual: gnu.org/savannah-checkouts/gnu/autoconf/manual/autoconf-2.69/…
npostavs

Jawaban:


4

Saya bisa mendapatkan nomor baris di gdb jika saya menjalankan emacsclientbiner yang diproduksi oleh make yang hidup di emacs/lib-src. Jika saya lakukan make installdan mencoba melampirkan debugger ke biner yang diinstal, tidak ada nomor baris.

Inilah yang bekerja untuk saya:

$ 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

Ini tidak berfungsi:

$ 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
Bisa jadi langkah instalasi memanggil utilitas yang menghapus simbol debug.
wasamasa

Mengapa Anda lulus -O0?
Heinrich Hartmann

-O0 menonaktifkan optimasi. Optimalisasi mengacaukan kemampuan Anda untuk menelusuri kode karena tidak ada lagi pemetaan antara kode yang dikompilasi dan file sumber.
pencari kerja
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.