วิธีการรวบรวม emacs ที่มีสัญลักษณ์ debug?


9

ฉันมีปัญหาในการเดินผ่านซอร์สโค้ด emacs ใน gdb ฉันคิดว่าฉันขาดสัญลักษณ์แก้ปัญหา

ทำตามคำแนะนำจาก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ในวิธีที่คุณทำ โดยปกติแล้วผู้ที่มาก่อนที่จะเรียกโปรแกรมและกำหนดค่าจะนำผู้ที่มาจากสภาพแวดล้อมที่เรียกด้วย แต่อาจเป็นสิ่งใหม่ ...
wvxvw

1
แนะนำให้ส่งผ่านข้อโต้แย้งในคู่มือ: gnu.org/savannah-checkouts/gnu/autoconf/manual/autoconf-2.69/…
npostavs

คำตอบ:


4

ผมสามารถที่จะได้รับหมายเลขบรรทัดใน gdb ถ้าฉันเรียกใช้ไบนารีที่ผลิตโดยให้ที่อาศัยอยู่ในemacsclient 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

ทำไมคุณถึงผ่าน -O0
เฮ็นฮาร์ทมันน์

-O0 ปิดใช้งานการเพิ่มประสิทธิภาพ การปรับให้เหมาะสมทำให้สับสนกับความสามารถในการก้าวไปข้างหน้าของรหัสเนื่องจากไม่มีการแมประหว่างรหัสที่คอมไพล์และไฟล์ต้นฉบับอีกต่อไป
ทำงาน
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.