Rumah > pembangunan bahagian belakang > Golang > Bolehkah Pergi Mengesan Lampiran Debugger GoLand Seperti `Debugger.IsAttached` C#?

Bolehkah Pergi Mengesan Lampiran Debugger GoLand Seperti `Debugger.IsAttached` C#?

Susan Sarandon
Lepaskan: 2024-12-06 05:22:09
asal
897 orang telah melayarinya

Can Go Detect GoLand Debugger Attachment Like C#'s `Debugger.IsAttached`?

Mengesan Pelaksanaan Penyahpepijat GoLand dalam Program

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.

Penyelesaian

Menggunakan Teg Binaan:

  1. Buat dua fail sumber Go: "isdelve/delve.go" dan "isdelve/nodelve.go."
  2. Dalam "isdelve/delve.go," tambah teg binaan berikut:

    // +build delve
    Salin selepas log masuk
  3. Dalam "isdelve/nodelve.go," tambah binaan berikut tag:

    // +build !delve
    Salin selepas log masuk
  4. Tambahkan pengisytiharan "package isdelve" pada kedua-dua fail dan isytiharkan pemalar "Didayakan":

    package isdelve
    
    const Enabled = true
    
    // or
    
    package isdelve
    
    const Enabled = false
    Salin selepas log masuk
  5. Buat fail Go ketiga, "a.go," yang mengimport "isdelve" pakej:

    package main
    
    import (
        "isdelve"
        "fmt"
    )
    
    func main() {
        fmt.Println("delve", isdelve.Enabled)
    }
    Salin selepas log masuk

Mengkonfigurasi GoLand:

  1. Buka tetingkap "Run/Debug Configurations" dalam GoLand.
  2. Tambahkan "-tags=delve" pada "argumen alat Go" bahagian.

Penggunaan:

  • Apabila menjalankan "go run a.go" di luar GoLand, program akan melaporkan "deve false."
  • Apabila menggunakan dlv untuk nyahpepijat, gunakan "dlv debug --build-flags='-tags=delve' a.pergi." Ini akan melaporkan "deve true."

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!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan