अपडेट करें:
मैंने इसे देख लिया है और यह रिपोर्ट करके खुश हूं कि संस्करण: 2016.1.3, बिल्ड: 145.1617.8, विमोचित: 5 जून, 2016 डेलवे के साथ काम करता है! आप इसे यहाँ डाउनलोड कर सकते हैं: https://www.jetbrains.com/idea/download/ । यहां भी Delve install निर्देशों का पालन करें: https://github.com/derekparker/delve/tree/master/Documentation-installation
यह थोड़ा परतदार है। बस के बाद मैंने OSX लॉगिन प्रॉम्प्ट किया इंटरैक्टिव इंटरैक्टिव डिबगिंग ने काम करना शुरू कर दिया। कभी-कभी, मुझे इसे शुरू करने के लिए एक साधारण .go कार्यक्रम को डीबग करना पड़ता है। लेकिन यह काम करता है और गो के लिए सबसे अच्छा इंटरैक्टिव डिबगिंग अनुभव है जो मैंने देखा है।
मूल पोस्ट:
क्या कोई गोलंग इंटरैक्टिव डिबगर मौजूद है? हाँ।
क्या कोई गोलंग इंटरएक्टिव डिबगर, जो उपयोग करने लायक है, मौजूद है? नहीं।
मैक पर GDB कॉन्फ़िगर करना थकाऊ है, लेकिन उल्लेखनीय है।
हालाँकि, एक बार जब आप इसका उपयोग करना शुरू कर देंगे, तो आपको जल्द ही पता चल जाएगा कि आपने इसे स्थापित करने में अपना समय बर्बाद किया है।
आप इसका उपयोग करने के लिए IntelliJ को भी कॉन्फ़िगर कर सकते हैं।
एकमात्र मान जो IntelliJ, LiteIDE, CGDB, आदि प्रदान करते हैं, यह है कि आप अधिक तेज़ी से यह पता लगा सकते हैं कि Go के लिए GDB डिबगिंग समर्थन बेहद खराब है।
आप इसका उपयोग कुछ गो कोड के माध्यम से करने के लिए कर सकते हैं, लेकिन बहुत ही सरल चर मानों के अलावा किसी भी चीज़ के मूल्य को प्रिंट करने का प्रयास करें और आप एक अच्छे डिबगर के लिए अपना समय बर्बाद कर रहे हैं।
जब आप CGDB का उपयोग करते हुए मानचित्र [स्ट्रिंग] स्ट्रिंग डेटा संरचना के मूल्य को प्रिंट करने का प्रयास करते हैं तो क्या होता है इसका एक उदाहरण यहां दिया गया है:
(gdb) print params
$1 = (github.com/go-martini/martini.Params) 0x15582 <runtime.reentersyscall+450>
... जो पूरी तरह से बेकार है।
अगला, यह प्रयास करें:
(gdb) print params["UserID"]
... और आपको "बस त्रुटि" मिलेगी।
Delve ( https://github.com/derekparker/delve ) होनहार लग रहा है, क्योंकि यह गो में लिखा है, लेकिन आप इसे कंसोल का उपयोग करके चलाते हैं, न कि एक आईडीई के माध्यम से।
मैं ख़ुशी से IntelliJ (या किसी अन्य IDE) के एंटरप्राइज़ संस्करण के लिए भुगतान करूँगा जिसने गो में इंटरैक्टिव डिबगिंग का समर्थन करने वाला एक अच्छा काम किया।
अभी के रूप में, के fmt.Printf("%v", variable)
रूप में यह हो जाता है के रूप में अच्छा है।