Dalam alam pengaturcaraan, selalunya wajar untuk mengenal pasti sama ada program sedang berjalan di bawah pengawasan penyahpepijat. Dalam C#, ini boleh dicapai dengan mudah menggunakan System.Diagnostics.Debugger.IsAttached. Tetapi bagaimana pula dengan Go, khususnya apabila menggunakan penyahpepijat GoLand?
Meneroka Bendera Nyahpepijat
Dalam Go, mengenal pasti pelaksanaan penyahpepijat tidak semudah dalam C#. Walau bagaimanapun, pendekatan bijak melibatkan penggunaan teg binaan untuk membezakan antara mod nyahpepijat dan bukan nyahpepijat. Dengan memanfaatkan hujah --build-flags semasa menjalankan dlv, adalah mungkin untuk menghantar teg tertentu untuk mengukur kehadiran penyahpepijat.
Pelaksanaan dengan Delve
Untuk melaksanakan pendekatan ini , buat dua fail sumber Go:
Teg ini menentukan sama ada Didayakan pemalar dalam pakej isdelve adalah benar (mod nyahpepijat) atau palsu (mod bukan nyahpepijat).
Dalam program Go utama, import pakej isdelve dan semak pemalar Didayakan untuk memastikan status penyahpepijatan.
Konfigurasi dalam GoLand
Untuk mendayakan fungsi ini dalam GoLand, navigasi ke 'Run/Debug Configurations' dan tambah -tags=deve to 'Go tool arguments'. Ini mengkonfigurasi atur cara untuk membina dengan bendera penyahpepijatan.
Mod Nyahpepijat Luaran
Dalam persekitaran bukan GoLand, gunakan dlv debug --build-flags='-tags= delve' a.go untuk menggunakan penyahpepijat dengan teg yang ditentukan.
Tambahan Alternatif
Pendekatan alternatif melibatkan penggunaan perintah set delve untuk menetapkan pembolehubah secara manual selepas penyahpepijat dimulakan. Ini memberikan lebih fleksibiliti dalam senario tertentu.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengesan jika Program Go Berjalan Di Bawah Penyahpepijat (cth., GoLand)?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!