कैसे डिबग प्रतीकों के साथ emacs संकलन करने के लिए?


9

मुझे gdb में emacs source कोड के माध्यम से चलने में परेशानी हो रही है। मुझे लगता है कि मुझे डिबग प्रतीक याद आ रहे हैं।

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

अगर मैं 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
बहुत अच्छी तरह से हो सकता है कि अधिष्ठापन कदम एक उपयोगिता को लागू करता है जो डिबग प्रतीकों को स्ट्रिप्स करता है।
वामासा

आप क्यों पास करते हैं -ओ0?
हेनरिक हार्टमैन

-O0 अनुकूलन को निष्क्रिय करता है। अनुकूलन कोड के माध्यम से कदम रखने की आपकी क्षमता को गड़बड़ कर देता है क्योंकि अब संकलित कोड और स्रोत फ़ाइल के बीच मैपिंग नहीं है।
नौकरीपेशा
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.