Dalam C#, program yang sedang berjalan boleh mengenal pasti sama ada ia berada di bawah pengawasan penyahpepijat melalui kaedah "System.Diagnostics.Debugger.IsAttached" .
Bolehkah Go mencapai fungsi yang serupa? Ini amat diingini untuk melumpuhkan tamat masa semasa kod sedang dinyahpepijat.
Secara khusus, soalan ini timbul dalam konteks penggunaan penyahpepijat GoLand.
Menggunakan Teg Binaan:
Dalam "isdelve/delve.go," tambah teg binaan berikut:
// +build delve
Dalam "isdelve/nodelve.go," tambah binaan berikut tag:
// +build !delve
Tambahkan pengisytiharan "package isdelve" pada kedua-dua fail dan isytiharkan pemalar "Didayakan":
package isdelve const Enabled = true // or package isdelve const Enabled = false
Buat fail Go ketiga, "a.go," yang mengimport "isdelve" pakej:
package main import ( "isdelve" "fmt" ) func main() { fmt.Println("delve", isdelve.Enabled) }
Mengkonfigurasi GoLand:
Penggunaan:
Alternatif:
Sebagai alternatif, perintah "set" delve boleh menetapkan pembolehubah secara manual selepas memulakan penyahpepijat.
Atas ialah kandungan terperinci Bolehkah Pergi Mengesan Lampiran Debugger GoLand Seperti `Debugger.IsAttached` C#?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!