मैं डिबगिंग कर रहा हूं कि क्यों emacs एक पैकेज 1 से फ़ंक्शन का उपयोग करते समय क्रैश हो जाता है । इस डिबग प्रक्रिया का उद्देश्य उपयोग करने के लिए उपयोगी डेटा प्राप्त करना है M-x report-emacs-bug।
Emacs क्रैश को डिबग करने के तरीके के बारे में मदद पाने के लिए, मैंने पहले ही Emacs Manual - Crashing और Emacs Manual - Crash के बाद देखा है , लेकिन उन्होंने कोई मदद नहीं की।
बाद एक दुर्घटना पुस्तिका को संदर्भित करता है emacs-buffer.gdb, लेकिन मैं पता नहीं है कि यह कैसे उपयोग करने के लिए है। मदद के लिए Google से पूछते समय, मैं इस emacs.SE प्रश्न पर आया , और मैंने -ggdb3झंडे का उपयोग करके emacs को फिर से जोड़ दिया ।
मेरे पास उपयोग करने का कोई पूर्व अनुभव नहीं है gdbऔर इसलिए मैंने emacs-buffer.gbdफ़ाइल का उपयोग करने के कुछ असफल प्रयास किए ।
यहाँ मैंने क्या कोशिश की है:
gdb -x /path/to/emacs-buffer.gdbgdb->file /path/to/emacs-buffer.gdbgdb->source /path/to/emacs-buffer.gdbsource /path/to/emacs-buffer.gdb
एक साइड नोट पर, -ggdb3ध्वज के साथ संकलित emacs को लोड होने में लगभग 10 सेकंड अधिक समय लगता है; पहले यह 5-6 सेकंड था, अब लगभग 16-17 सेकंड। मैं एक कोड के कारण सटीक सेकंड जानता हूं जो मेरे init में गणना करता है। क्या स्टार्टअप के समय में यह वृद्धि अपेक्षित है?
Footnote 1: emacs लगातार क्रैश undo-treeकरता है जब किसी विशेष .org फ़ाइल के लिए पूर्ववत इतिहास को पुनर्स्थापित करने का प्रयास करता है (जिसे मैं सार्वजनिक रूप से साझा नहीं कर सकता)। मेरे पास है (setq undo-tree-auto-save-history t)। यह क्रैश केवल emacs git मास्टर पर होता है, emacs 24.5 पर नहीं। Emacs 24.5 पर, undo-treeयह कहते हुए एक त्रुटि फेंकता है कि यह पूर्ववत इतिहास (पूर्ववत इतिहास फ़ाइल मौजूद होने के बावजूद) को लोड करने में असमर्थ है, लेकिन कम से कम emacs सत्र उस संस्करण पर क्रैश नहीं करता है।
undue-treeहै, लेकिन इसकी व्यापक संभावनाएं हैं ।
undo-treeसटीक जवाब की उम्मीद नहीं करता था क्योंकि मुझे पता है कि किसी और के लिए उस सटीक दुर्घटना को फिर से बनाना मुश्किल होगा। इसके अलावा, मैं पूरे ओआरजी फ़ाइल को साझा नहीं कर सकता जो कि इस दुर्घटना का कारण लगता है। इसलिए मैंने gdbइस सवाल पर केवल टैग लगाया । मैंने वह बैक स्टोरी दी ताकि जवाब मुझे गाइड कर सकें कि कैसे एमएसीएस क्रैश को सामान्य रूप से डिबग किया जाए ताकि मैं एक उपयोगी एमएसीएस बग रिपोर्ट दर्ज कर सकूं ।