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 message
message
वेरिएबल के मूल्य को प्रिंट करेगा।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 द्वारा प्रदान की गई मूलभूत विशेषताओं के अलावा कई विशेषताएं प्रदान करता है। इनमें शामिल हैं लेकिन सीमित नहीं हैं: डिबगिंग के लिए चल रही प्रक्रियाओं के लिए जोड़ना; �