Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimanakah Saya Boleh Mengesan jika Penyahpepijat GoLand Dilampirkan pada Program Go?

Bagaimanakah Saya Boleh Mengesan jika Penyahpepijat GoLand Dilampirkan pada Program Go?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-11-25 13:30:12950semak imbas

How Can I Detect if the GoLand Debugger is Attached to a Go Program?

Mengesan Kehadiran Penyahpepijat GoLand dalam Program Yang Berjalan

In Go, tidak seperti dalam C# di mana System.Diagnostics.Debugger.IsAttached boleh digunakan untuk mengesan kehadiran penyahpepijat, terdapat tiada setara langsung. Untuk menangani perkara ini, satu pendekatan ialah memanfaatkan teg binaan dengan penyahpepijat delve.

Menggunakan Teg Binaan

Buat dua fail:

  • isdelve/delve.go:
// +build delve

package isdelve

const Enabled = true
  • isdelve/nodelve.go:
// +build !delve

package isdelve

const Enabled = false

Dalam program utama anda, import pakej isdelve dan semak Pemalar yang didayakan:

import "isdelve"

func main() {
    fmt.Println("delve", isdelve.Enabled)
}

Mendayakan Teg Binaan dalam GoLand

Dalam GoLand, navigasi ke 'Run/Debug Configurations' dan dalam 'Go tool arguments', tambahkan:

-tags=delve

Kini, menjalankan program dalam GoLand akan membolehkan teg binaan delve, membolehkan anda mengakses isdelve.Didayakan pemalar.

Menggunakan perintah set delve

Sebagai alternatif, gunakan perintah set delve untuk menetapkan pembolehubah selepas memulakan penyahpepijat:

dlv debug a.go
(dlv) set debug.enabled true

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengesan jika Penyahpepijat GoLand Dilampirkan pada Program Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn