मैं Emacs के लिए एक प्रमुख मोड विकसित कर रहा हूँ। क्या कोई तरीका है कि जब मैं फ़ॉन्टिफिकेशन होता है तो मैं स्रोत कोड में ब्रेक पॉइंट सेट कर सकता हूं, उदाहरण के लिए?डीबग Emacs Lisp प्रमुख मोड
उत्तर
उस फ़ंक्शन का लिस्प स्रोत ढूंढें जिसे आप चरणबद्ध करना चाहते हैं, और M-x edebug-defun
टाइप करें। फिर, जब भी वह फ़ंक्शन निष्पादित किया जाता है, तो आपको स्वचालित रूप से एडबग में रखा जाएगा, जहां आप चाहें तो इसके माध्यम से कदम उठा सकते हैं।
फ़ोटोग्राफ़िक फ़ंक्शन कुछ मुश्किल हो सकते हैं, क्योंकि उन्हें अजीब समय पर बुलाया जा सकता है। *Messages*
बफर में संदेश लिखने के लिए आप message
फ़ंक्शन का उपयोग कर सकते हैं। एक और चाल फ़ॉन्ट लॉक को बंद करना है (इसलिए आपका फ़ंक्शन स्वचालित रूप से लागू नहीं होता है), फिर उस फ़ंक्शन को प्रीपेड करें जिसे आप edebug-defun
से डिबग कर रहे हैं और उसे मैन्युअल रूप से आमंत्रित करें। (ध्यान दें कि आप एक गैर-इंटरैक्टिव फ़ंक्शन का आह्वान करने के लिए M-:
(a.k.a. eval-expression
) का उपयोग कर सकते हैं।)
डिबगिंग elisp के लिए मैनुअल found here हो सकता है।
आप edebug
इस्तेमाल किया जा सकता के रूप में उल्लेख किया है, वहाँ भी है एम एक्स डिबग-ऑन-प्रविष्टि और आप (setq debug-on-quit t)
सेट कर सकते हैं। लिंक में सभी विकल्पों को देखें, यह सब इस बात पर निर्भर करता है कि आप बिल्ली को कैसे त्वचा बनाना चाहते हैं।
और किसी भी अन्य प्रोग्रामिंग भाषा की तरह, आप प्रिंट स्टेटमेंट के साथ डीबग कर सकते हैं। (message "here, foo=%d" foo)
आपका दोस्त है। (आपको शायद पता है कि ये संदेश *Messages*
बफर में जमा किए गए हैं, इसलिए यदि वे बहुत जल्दी से जाते हैं, तो यह कोई समस्या नहीं है।) trace-function
भी सहायक है।
मैंने बहुत सारे emacs मोड लिखे हैं और केवल डीबगर की शायद ही कभी आवश्यकता है। आम तौर पर समस्या कुछ अच्छी तरह से मुद्रित प्रिंट स्टेटमेंट के साथ खुद को उजागर करती है।
सिद्धांत रूप में, एक डीबगर केवल एक गौरवशाली 'सम्मिलित-प्रिंट-स्टेटमेंट' मशीन है, लेकिन यह आपके लिए कार्य स्वचालित करता है, जबकि कोड को खराब नहीं करता है और मैं उस कार्यक्षमता को डिलीग करने के लिए उपयोगी कार्यक्षमता प्राप्त करूंगा जो मैं लिख रहा हूं, खासकर जब मैं elisp के लिए बिल्कुल नया हूँ – Alex
एक और नोट पर भी यदि आप कुछ लिस्प स्निपेट को तुरंत डीबग करना चाहते हैं तो आप शायद आईईएलएम मोड का उपयोग करना चाहते हैं, उदाहरण के लिए पाइथन इंटरैक्टिव मोड।
edebug
के बजाय आप debug
का उपयोग कर सकते हैं। फ़ंक्शन में प्रविष्टि पर डीबगर खोलने के लिए, M-x debug-on-entry THE-FUNCTION
का उपयोग करें। या ब्रेकपॉइंट्स (कोड को फिर से eval) के रूप में सेवा करने के लिए स्रोत कोड में debug
फ़ंक्शन करने के लिए कॉल डालें।
हालांकि, वास्तविकता वास्तव में अजीब समय पर होती है, जिसमें रेडिसप्ले इत्यादि शामिल हैं। यदि आपको वास्तव में फ़ॉन्टिफिकेशन प्रक्रिया डीबग करने की आवश्यकता है, तो आप font-lock-keywords
में फ़ंक्शन का उपयोग कर सकते हैं, केवल regexps नहीं।
लेकिन वास्तव में आपको अपनी फ़ॉन्ट-लॉक डीबगिंग समस्याओं के बारे में और अधिक विशिष्ट होने की आवश्यकता होगी। आम तौर पर लोगों की समस्याएं हैं (ए) font-lock-keywords
(संरचना) और (बी) regexps समझना जो वे चाहते हैं से मेल नहीं खाते हैं।
वैसे भी, * breakpoints के बारे में "अपने सवाल का जवाब देने: हाँ, केवल आपके लिस्प स्रोत कोड में चाहते हैं किसी भी बिंदु पर (debug)
सम्मिलित डिबगर उस बिंदु पर दर्ज किया जाएगा
- 1. Emacs (Lisp से) में वर्तमान प्रमुख मोड का पता लगाएं?
- 2. emacs - Emacs Lisp मोड में स्वत: पूर्णता
- 3. Emacs में जावास्क्रिप्ट प्रमुख मोड
- 4. Emacs स्टॉक प्रमुख मोड सूची
- 5. Emacs और Emacs Lisp
- 6. Emacs के लिए जीएलएसएल प्रमुख मोड?
- 7. Emacs Lisp
- 8. Emacs Lisp
- 9. Emacs Lisp
- 10. Emacs Lisp
- 11. Emacs Lisp
- 12. Emacs Lisp: alist
- 13. Emacs Lisp मैक्रो स्टेपर
- 14. emacs lisp: * एच elp *
- 15. Emacs साइट-lisp निर्देशिका
- 16. जब Emacs Lisp
- 17. एक emacs प्रमुख मोड को फिर से लोड कैसे करें?
- 18. डीबग मोड
- 19. डीबग मोड?
- 20. डीबग मोड?
- 21. डीबग मोड
- 22. डीबग मोड
- 23. डीबग मोड
- 24. डीबग मोड
- 25. सामान्य लिस्प और emacs lisp
- 26. संपादन emacs से अलग LISP कैसे emacs है?
- 27. Emacs Lisp में कॉलम व्यू कैसे बनाएं?
- 28. Emacs Lisp में लागू करने का सही उपयोग?
- 29. Emacs ऑर्ग मोड: लाइन
- 30. कोड रिलीज बनाम डीबग मोड
हां, यह मेरे मांगपत्र के लिए काम करता है।। -region फ़ंक्शन, लेकिन, जैसा कि आप चेतावनी देते हैं, फ़ॉन्टिंग फ़ंक्शन के लिए नहीं! धन्यवाद। – Alex