Làm thế nào để biên dịch emacs với các biểu tượng gỡ lỗi?


9

Tôi gặp sự cố khi đi qua mã nguồn emacs trong gdb. Tôi nghĩ rằng tôi đang thiếu các biểu tượng gỡ lỗi.

Theo đề xuất từ https://stackoverflow.com/a/4298982/2752242 , tôi đã thử:

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

Nhưng, điều đó đã không làm việc.

Có hướng dẫn biên dịch với các biểu tượng gỡ lỗi không? Cảm ơn!


Đây là cách tôi xây dựng nó, nếu tôi cần gỡ lỗi : CFLAGS='-O0 -ggdb -g3' ./configure --enable-checking --enable-asserts. Tôi không phải là dân chuyên nghiệp, nhưng tôi không chắc bạn có thể đưa ra lập luận configuretheo cách bạn đã làm không. Thông thường, những người đến trước khi gọi chương trình và cấu hình sẽ lấy những người từ môi trường mà nó được gọi, nhưng có lẽ đó là một điều gì đó mới ...
wvxvw

1
Đi qua qua đối số được khuyến cáo trong cuốn hướng dẫn: gnu.org/savannah-checkouts/gnu/autoconf/manual/autoconf-2.69/...
npostavs

Câu trả lời:


4

Tôi đã có thể nhận được số dòng trong gdb nếu tôi chạy emacsclienttệp nhị phân được tạo ra bằng cách thực hiện cuộc sống đó emacs/lib-src. Nếu tôi làm make installvà cố gắng đính kèm trình gỡ lỗi vào tệp nhị phân đã cài đặt, không có số dòng.

Đây là những gì làm việc cho tôi:

$ 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

Điều này không hoạt động:

$ 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
Rất có thể là bước cài đặt gọi một tiện ích loại bỏ các ký hiệu gỡ lỗi.
wasamasa

Tại sao bạn vượt qua -O0?
Heinrich Hartmann

-O0 vô hiệu hóa tối ưu hóa. Tối ưu hóa làm rối tung khả năng của bạn để chuyển qua mã vì không còn ánh xạ giữa mã được biên dịch và tệp nguồn.
việc
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.