बाधा मूल्यांकन और emacs- लिस्प डिबगर में वर्तमान ढेर का निरीक्षण?


17

यदि कुछ एमएसीएस-लिस्प फ़ंक्शन, जैसे कि एक प्रमुख मोड हुक, निष्पादित करने की अपेक्षा अधिक समय ले रहा है, तो मैं कभी-कभी इसे बाधित करना और वर्तमान स्टैक को देखना पसंद करूंगा। आदर्श रूप से, मैं डिबगर में परिवर्तनशील मूल्यों को देखने में सक्षम होना चाहूंगा। मैं कोड के बारे में बात नहीं कर रहा हूं कि मैं जानबूझकर एमएसीएस-लिस्प मोड में निष्पादित कर रहा हूं, बल्कि कोड जो एमएसीएस के सामान्य संचालन में निष्पादित होता है।

मैं सीधे emacs में emacs-lisp कोड के निष्पादन को कैसे रोक सकता हूं? मुझे पता नहीं है कि मुझे कौन सा फ़ंक्शन डिबग करने की आवश्यकता है।

उदाहरण के लिए, टाइपिंग C-g, जबकि यह निष्पादन को बाधित करता है, मुझे यह भी बताता है कि किस फ़ंक्शन के बारे में कुछ भी बाधित नहीं हुआ था।

जवाबों:


18

आप C-gडीबगर को चालू करके ट्रिगर कर सकते हैं debug-on-quit। बस करो

M-x toggle-debug-on-quit

अब हर बार जब आप टकराते हैं, C-gतो आपको पता चलता है कि क्या चल रहा था। यह बैकट्रेस इंटरेक्टिव है, इसलिए आप फंक्शन के माध्यम से कदम रख सकते हैं d, और आप इसके साथ बाहर जाना शुरू कर सकते हैं c। (यह एक कोशिश दे, यह पढ़ने की तुलना में देखने के लिए आसान है)।

यह वही बैकट्रेस है जो आपको (debug)अपने कोड के अंदर जोड़कर मिलता है । यहाँ पर एक छोटा ब्लॉग पोस्ट है, और प्रासंगिक एलिसाफ़ मैनुअल पेज


(meekly कहते हैं hello);) बहुत बढ़िया ध्यान दें कि डिबगर इंटरएक्टिव है - मैंने कभी नहीं सोचा था कि इसकी जाँच करें :)
सीन एलाड

@ सीन से पता चला, मुझे केवल कुछ हफ़्ते पहले पता चला है।
मालाबार
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.