我在遍历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/
但是,那没有用。
是否有关于使用调试符号进行编译的说明?谢谢!
我在遍历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/
但是,那没有用。
是否有关于使用调试符号进行编译的说明?谢谢!
Answers:
如果运行emacsclient
由make生成的二进制文件(位于),则可以在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
CFLAGS='-O0 -ggdb -g3' ./configure --enable-checking --enable-asserts
。我不是专业人士,但是我不确定您是否可以configure
对您的做法提出质疑。通常,那些是在调用程序之前来的,并且configure从调用它的环境中获取它们,但是也许是新东西……