デバッグシンボルを使用してemacsをコンパイルする方法


9

gdbでemacsソースコードを確認するのに問題があります。デバッグシンボルがないと思います。

https://stackoverflow.com/a/4298982/2752242からの提案に従って、私は試しました:

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

しかし、それはうまくいきませんでした。

デバッグシンボルを使用してコンパイルする手順はありますか?ありがとう!


これは、デバッグが必要な場合のビルド方法ですCFLAGS='-O0 -ggdb -g3' ./configure --enable-checking --enable-asserts。私はプロではありませんが、configureあなたがそれをした方法についてあなたが議論をすることができるかどうかはわかりません。通常、それらはプログラムを呼び出す前に来て、configureはそれが呼び出された環境からそれらを
取得し

1
引数で渡すには、マニュアルで推奨されていますgnu.org/savannah-checkouts/gnu/autoconf/manual/autoconf-2.69/...
npostavs

回答:


4

にあるemacsclientmakeによって生成されたバイナリを実行すると、gdbで行番号を取得できましたemacs/lib-src。私はないとmake installしてインストールバイナリ、ノー行番号にデバッガをアタッチしよう。

これは私のために働いたものです:

$ 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

これは機能しません:

$ 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
インストール手順で、デバッグシンボルを削除するユーティリティが呼び出される可能性があります。
wasamasa 14

なぜ-O0を渡すのですか?
ハインリッヒハートマン

-O0は最適化を無効にします。最適化は、コンパイルされたコードとソースファイルとのマッピングがなくなるため、コードをステップ実行する機能を台無しにします。
求職者2018
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.