Go:
डीबगर का उपयोग करना
कैसे करें:
Go में delve नामक एक निर्मित सुविधा डिबगिंग के लिए प्रदान करता है। यह एक पूर्ण विशेषताओं वाला डिबगिंग उपकरण है जो आपको Go प्रोग्रामों को कदम दर कदम चलाने, प्रोग्राम वेरिएबल्स की जांच करने, और अभिव्यक्तियों का मूल्यांकन करने की अनुमति देता है।
शुरू करने के लिए, आपको पहले delve को स्थापित करना होगा। आप इसे निम्न चलाकर कर सकते हैं:
go get -u github.com/go-delve/delve/cmd/dlvअब, चलिए एक सरल Go प्रोग्राम को डिबग करते हैं। एक प्रोग्राम main.go पर विचार करें:
package main
import "fmt"
func main() {
message := "Go में डिबगिंग"
fmt.Println(message)
}इस प्रोग्राम को डिबग करना शुरू करने के लिए, प्रोजेक्ट की डायरेक्टरी में एक टर्मिनल खोलें और निम्नलिखित चलाएं:
dlv debugयह कमांड प्रोग्राम को अनुकूलनों को अक्षम करके (डिबगिंग अनुभव में सुधार के लिए) संकलित करता है, इसे शुरू करता है, और इसे डिबगर से जोड़ता है।
एक बार delve चलने लगे, आप इंटरैक्टिव डिबगर शेल में होते हैं। यहाँ कुछ मूल आदेश हैं:
break main.mainमेन फंक्शन पर एक ब्रेकपॉइंट सेट करता है।continueब्रेकपॉइंट पर पहुँचने तक प्रोग्राम निष्पादन को फिर से शुरू करता है।print messagemessageवेरिएबल के मूल्य को प्रिंट करेगा।nextप्रोग्राम निष्पादन को अगली पंक्ति तक आगे बढ़ाता है।quitडिबगर से बाहर निकलता है।
ब्रेकपॉइंट पर पहुँचने और वेरिएबल को प्रिंट करने पर आउटपुट इस प्रकार दिख सकता है:
Breakpoint 1 at 0x49ecf3 for main.main() ./main.go:6
> main.main() ./main.go:6 (hits goroutine(1):1 total:1) (PC: 0x49ecf3)
1: package main
2:
3: import "fmt"
4:
5: func main() {
6: => message := "Go में डिबगिंग"
7: fmt.Println(message)
8: }
(dlv) print message
"Go में डिबगिंग"इन आदेशों का उपयोग करते हुए, आप अपने कार्यक्रम के माध्यम से कदम उठा सकते हैं, जैसे-जैसे आप जाते हैं राज्य का निरीक्षण करते हैं ताकि यह समझ सकें कि यह कैसे व्यवहार करता है, और किसी भी मुद्दे की पहचान कर सकें।
गहन अन्वेषण
GDB (GNU Debugger) जैसे पारंपरिक उपकरणों के ऊपर Go के डिबगिंग उपकरण के रूप में delve की पसंद का मुख्य कारण Go के क्रियान्वयन मॉडल और रनटाइम की प्रकृति के कारण है। GDB को शुरू में Go रनटाइम के साथ ध्यान में रखकर डिजाइन नहीं किया गया था, जिससे Go डेवलपर्स के लिए delve एक अधिक उपयुक्त विकल्प बन जाता है। Delve विशेष रूप से Go के लिए डिज़ाइन किया गया है, Go रूटीन्स, चैनल्स, और अन्य Go-विशिष्ट निर्माणों के लिए एक अधिक सहज डिबगिंग अनुभव प्रदान करता है।
इसके अलावा, delve Go प्रोग्रामों के साथ काम करते समय GDB द्वारा प्रदान की गई मूलभूत विशेषताओं के अलावा कई विशेषताएं प्रदान करता है। इनमें शामिल हैं लेकिन सीमित नहीं हैं: डिबगिंग के लिए चल रही प्रक्रियाओं के लिए जोड़ना; �