"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > إعداد Delve وAir لتصحيح أخطاء Golang باستخدام VS Code

إعداد Delve وAir لتصحيح أخطاء Golang باستخدام VS Code

تم النشر بتاريخ 2024-08-19
تصفح:446

Setting up Delve and Air to debug Golang with VS Code

ملحق كود VS

ابحث عن Go in VS Code Extensions وقم بتثبيته.

  • https://marketplace.visualstudio.com/items?itemName=golang.Go

مصحح الأخطاء

ستحتاج إلى تثبيت Delve للحصول على تصحيح الأخطاء (نقاط التوقف، والتنقل، وما إلى ذلك) في VS Code.

go install github.com/go-delve/delve/cmd/dlv@latest

إذا استخدمت asdfto install Go، فسيكون موقع delve موجودًا في:

~/.asdf/shims/dlv

قد ترغب في تشغيل asdf reshim بعد تثبيت حزمة go.

إعادة التحميل المباشر

نظرًا لأن GoLang هي لغة مجمعة، فسيتم تجميع التعليمات البرمجية في ملف واحد قابل للتنفيذ. أثناء التطوير، سيتطلب إجراء التغييرات منا إعادة الترجمة باستمرار، وهو ما يمكن أن يكون عملية يدوية، خاصة في VS Code.

سوف نستخدم https://github.com/air-verse/air للقيام بإعادة التحميل المباشر لنا.

إنها أداة سطر أوامر تحتاج إلى تشغيلها مرة واحدة فقط داخل مجلد المشروع الخاص بك لمراقبة التغييرات.

تثبيت

تثبيت الحزمة. على افتراض أنك حصلت على الإصدار 1.22 أو أعلى.

go install github.com/air-verse/air@latest

إذا استخدمت قوات الدفاع الذاتي الجوية لتثبيت Go، فسيكون الهواء موجودًا في:

~/.asdf/shims/air

تهيئة ملف التكوين air.toml في جذر المشروع الخاص بك

cd ~/myproject
air init

تحرير أمر air.toml [[go build]] إلى:
- الكل: يجب تطبيق العلامات على جميع الحزم في حزم البناء
- -N: تم تعطيل التحسينات للتأكد من أن التعليمات البرمجية التي تم إنشاؤها أقرب إلى التعليمات البرمجية المصدر لتسهيل تصحيح الأخطاء
- -l: تعطيل التحسين المضمن حيث يتم توسيع الوظائف الصغيرة في مكانها لتقليل الحمل الزائد لاستدعاءات الوظائف، مما يسهل تصحيح الأخطاء
- الاستدلال من مرجع Delve

- cmd = "go build -o ./tmp/main ."
  cmd = 'CGO_ENABLED=0 go build -gcflags=all="-N -l"-o ./tmp/main .'"'

[!معلومات]
سيتم تشغيل الهواء بالتكوينات الافتراضية إذا:

  • ملف air.toml غير صالح
  • قم بتشغيله في مجلد المشروع الخاص بك عن طريق تشغيل الأمر الجوي

لن يستخدم ملف air.toml الخاص بك.

قم بتحرير air.toml full_bin لتشغيل الملف الثنائي المدمج باستخدام [[Delve]].

- full_bin = ""
  full_bin = "dlv exec ./tmp/main --listen=127.0.0.1:2345 --headless=true --api-version=2 --accept-multiclient --continue --log --"

سيؤدي هذا إلى تشغيل Delve على المنفذ 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

إرفاق رمز VS إلى Delve

في ملف .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"
    }
  ]
}

في VS Code Run and Debug (CMD SHIFT D)، ابدأ التصحيح باستخدام Attach to Air

[!معلومات] رمز VS غير قادر على الاتصال
إذا كان VS Code غير قادر على الاتصال، فمن المرجح أن Delve لا يعمل على المنفذ 2345. حاول استخدام lsof -i :2345 للتحقق مما إذا كان dlv يعمل باستخدام هذا المنفذ. إذا كان قيد التشغيل، يجب أن تشاهد:

$ lsof -i :2345
COMMAND   PID  USER   FD   TYPE             DEVICE SIZE/OFF NODE NAME
dlv     15464 username    3u  IPv4 0x201bff14586139e3      0t0  TCP localhost:dbm (LISTEN)

مسكتك

Go هي لغة مجمعة. وهذا يعني أنه يتم تجميع التعليمات البرمجية في ملف ثنائي ثم يتم تنفيذها. عندما نقوم بإجراء تغييرات على الكود في vscode:

  • سوف يراقب الهواء التغييرات
  • إعادة بناء الثنائي
  • بدء Delve في 2345

هذا يعني أنه سيتم قطع اتصال vscode وستحتاج إلى إعادة ربط vscode للتعمق.

بيان الافراج تم إعادة إنتاج هذه المقالة على: https://dev.to/nerdherd/setting-up-golang-on-vs-code-with-debugging-1kbe?1 إذا كان هناك أي انتهاك، يرجى الاتصال بـ [email protected] للحذف هو - هي
أحدث البرنامج التعليمي أكثر>

تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.

Copyright© 2022 湘ICP备2022001581号-3