वीएस कोड एक्सटेंशन में गो खोजें और इसे इंस्टॉल करें।
वीएस कोड में डिबगिंग (ब्रेकप्वाइंट, स्टेप थ्रू, आदि) प्राप्त करने के लिए आपको डेल्वे इंस्टॉल करना होगा।
go install github.com/go-delve/delve/cmd/dlv@latest
यदि आपने गो इंस्टॉल करने के लिए एएसडीएफ का उपयोग किया है, तो डेल्वे यहां स्थित होगा:
~/.asdf/shims/dlv
हो सकता है कि आप गो पैकेज स्थापित करने के बाद एएसडीएफ रेशिम चलाना चाहें।
चूंकि GoLang एक संकलित भाषा है, इसलिए कोड को एक निष्पादन योग्य में संकलित किया जाएगा। विकास के दौरान, बदलाव करने के लिए हमें लगातार पुन: संकलन की आवश्यकता होगी, जो एक मैन्युअल प्रक्रिया हो सकती है, खासकर वीएस कोड में।
हम अपने लिए लाइव रीलोडिंग करने के लिए https://github.com/air-vers/air का उपयोग करेंगे।
यह एक कमांड लाइन टूल है जिसे परिवर्तनों को देखने के लिए आपके प्रोजेक्ट फ़ोल्डर में केवल एक बार चलाने की आवश्यकता है।
पैकेज स्थापित करें। यह मानते हुए कि आप v1.22 या उच्चतर पर जा चुके हैं।
go install github.com/air-verse/air@latest
यदि आपने गो को स्थापित करने के लिए एएसडीएफ का उपयोग किया है, तो वायु इसमें स्थित होगी:
~/.asdf/shims/air
अपने प्रोजेक्ट रूट में एक Air.toml कॉन्फ़िग फ़ाइल प्रारंभ करें
cd ~/myproject air init
air.toml को संपादित करें [[बिल्ड करें]] कमांड को:
- सभी: बिल्ड पैकेजों में सभी पैकेजों पर झंडे लगाए जाने चाहिए
- -एन: आसान डिबगिंग के लिए स्रोत कोड के करीब उत्पन्न कोड को सुनिश्चित करने के लिए अक्षम अनुकूलन
- -एल: इनलाइनिंग ऑप्टिमाइज़ेशन को अक्षम करता है जहां फ़ंक्शन कॉल के ओवरहेड को कम करने के लिए छोटे फ़ंक्शन का विस्तार किया जाता है, जिससे डिबगिंग आसान हो जाती है
- डेल्वे संदर्भ से तर्क
- cmd = "go build -o ./tmp/main ." cmd = 'CGO_ENABLED=0 go build -gcflags=all="-N -l"-o ./tmp/main .'"'
[!जानकारी]
एयर डिफ़ॉल्ट कॉन्फ़िगरेशन के साथ चलेगा यदि:
- Air.toml फ़ाइल अमान्य है
- कमांड एयर चलाकर इसे अपने प्रोजेक्ट फ़ोल्डर में चलाएं
यह आपकी Air.toml फ़ाइल का उपयोग नहीं करेगा।
निर्मित बाइनरी को [[डेल्वे]] के साथ चलाने के लिए एयर.टॉएमएल फुल_बिन संपादित करें।
- full_bin = "" full_bin = "dlv exec ./tmp/main --listen=127.0.0.1:2345 --headless=true --api-version=2 --accept-multiclient --continue --log --"
यह डेल्वे को पोर्ट 2345 पर चलाएगा।
अपने प्रोजेक्ट फ़ोल्डर में एयर चलाएँ। आपको निम्नलिखित आउटपुट देखना चाहिए।
> cd ~/my-project > air __ _ ___ / /\ | | | |_) /_/--\ |_| |_| \_ v1.52.3, built with Go go1.22.5 mkdir ~/my-project/tmp watching . !exclude tmp building... running... API server listening at: 127.0.0.1:2345 2024-07-28T18:47:07 07:00 info layer=debugger launching process with args: [./tmp/main] 2024-07-28T18:47:09 07:00 debug layer=debugger entryPoint 0x1006e8000 machoOff 0x100000000 2024-07-28T18:47:09 07:00 warning layer=debugger debug_frame workaround not applied: function internal/abi.(*RegArgs).IntRegArgAddr (at 0x1006e9070) covered by 0x1006e9070-0x1006e9110 2024-07-28T18:47:09 07:00 debug layer=debugger Adding target 11503 "/Users/alaay/projects/scheduleasy/tmp/main" 2024-07-28T18:47:09 07:00 debug layer=debugger continuing 2024-07-28T18:47:09 07:00 debug layer=debugger ContinueOnce 2024/07/28 18:47:09 Starting server on :5602
अपनी .vscode/launch.config फ़ाइल में, निम्नलिखित जोड़ें:
{ // Use IntelliSense to learn about possible attributes. // Hover to view descriptions of existing attributes. // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 "version": "0.2.0", "configurations": [ { "name": "Attach to Air", "type": "go", "request": "attach", "mode": "remote", "port": 2345, "host": "127.0.0.1" } ] }
वीएस कोड रन और डिबग (सीएमडी शिफ्ट डी) में, अटैच टू एयर के साथ डिबगिंग शुरू करें
[!जानकारी] वीएस कोड कनेक्ट करने में असमर्थ
यदि वीएस कोड कनेक्ट करने में असमर्थ है, तो यह सबसे अधिक संभावना है कि डेल्वे पोर्ट 2345 पर नहीं चल रहा है। यह जांचने के लिए कि क्या डीएलवी उस पोर्ट का उपयोग करके चल रहा है, lsof -i :2345 का उपयोग करने का प्रयास करें। यदि यह चल रहा है, तो आपको यह देखना चाहिए:$ lsof -i :2345 COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME dlv 15464 username 3u IPv4 0x201bff14586139e3 0t0 TCP localhost:dbm (LISTEN)
गो एक संकलित भाषा है। इसका मतलब है कि कोड को बाइनरी में संकलित किया जाता है और फिर निष्पादित किया जाता है। जब भी हम vscode में कोड में परिवर्तन करते हैं:
इसका मतलब है कि vscode डिस्कनेक्ट हो जाएगा और आपको गहराई तक जाने के लिए vscode को दोबारा जोड़ना होगा।
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3