Inhaltsverzeichnis
So erkennen Sie, dass GoLand Debugger in einem Programm ausgeführt wird
Eine indirekte Lösung für Go
Heim Backend-Entwicklung Golang Wie kann ich erkennen, ob der GoLand-Debugger in meinem Go-Programm ausgeführt wird?

Wie kann ich erkennen, ob der GoLand-Debugger in meinem Go-Programm ausgeführt wird?

Dec 03, 2024 am 09:31 AM

How Can I Detect if the GoLand Debugger is Running in My Go Program?

So erkennen Sie, dass GoLand Debugger in einem Programm ausgeführt wird

Beim Debuggen in verwalteten Sprachen möchte man möglicherweise bestimmte Zeitverhaltensweisen deaktivieren oder alternative Codepfade ausführen. C# stellt zu diesem Zweck System.Diagnostics.Debugger.IsAttached bereit. Aber wie machen wir das in Go?

Eine indirekte Lösung für Go

Obwohl es in Go kein direktes Äquivalent zu Debugger.IsAttached gibt, können Sie das Vorhandensein des Debuggers mithilfe von Build-Tags indirekt erkennen .

Schritt 1: Erstellen Sie zwei Helfer Dateien

  • isdelve/delve.go, wenn das Debuggen aktiviert ist:

    // +build delve
    
    package isdelve
    
    const Enabled = true
    Nach dem Login kopieren
  • isdelve/nodelve.go, wenn das Debuggen nicht aktiviert ist aktiviert:

    // +build !delve
    
    package isdelve
    
    const Enabled = false
    Nach dem Login kopieren

Schritt 2: Suchen Sie in Ihrem Hauptprogramm nach dem Build-Tag

import (
    "fmt"
    "isdelve"
)

func main() {
    fmt.Println("Debugging:", isdelve.Enabled)
}
Nach dem Login kopieren

Schritt 3: Goland konfigurieren

Im GoLand-Fenster „Konfigurationen ausführen/debuggen“ unter „ Go-Tool-Argumente“ hinzufügen:

-tags=delve
Nach dem Login kopieren

Beim Debuggen mit Goland wird „Enabled“ auf „true“ gesetzt. Andernfalls ist es falsch.

Schritt 4: Alternative Methode mit DLV

Wenn Sie dlv lieber direkt verwenden möchten, verwenden Sie:

dlv debug --build-flags='-tags=delve' a.go
Nach dem Login kopieren

Dadurch wird „Enabled“ auf „true“ gesetzt.

Schritt 5: Dynamische Variable Einstellung

Alternativ können Sie den Befehl dlv verwenden, um eine Variable manuell nach dem Start des Debuggers wie folgt festzulegen:

> set enabled true
Nach dem Login kopieren

Dadurch wird eine global aktivierte Variable festgelegt, die Sie überprüfen können in Ihrem Code.

Das obige ist der detaillierte Inhalt vonWie kann ich erkennen, ob der GoLand-Debugger in meinem Go-Programm ausgeführt wird?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße Artikel -Tags

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

GO Language Pack Import: Was ist der Unterschied zwischen Unterstrich und ohne Unterstrich? GO Language Pack Import: Was ist der Unterschied zwischen Unterstrich und ohne Unterstrich? Mar 03, 2025 pm 05:17 PM

GO Language Pack Import: Was ist der Unterschied zwischen Unterstrich und ohne Unterstrich?

Wie schreibe ich Scheinobjekte und Stubs zum Testen in Go? Wie schreibe ich Scheinobjekte und Stubs zum Testen in Go? Mar 10, 2025 pm 05:38 PM

Wie schreibe ich Scheinobjekte und Stubs zum Testen in Go?

Wie kann ich kurzfristige Informationsübertragung zwischen Seiten im BeEGO-Framework implementieren? Wie kann ich kurzfristige Informationsübertragung zwischen Seiten im BeEGO-Framework implementieren? Mar 03, 2025 pm 05:22 PM

Wie kann ich kurzfristige Informationsübertragung zwischen Seiten im BeEGO-Framework implementieren?

Wie kann ich Tracing -Tools verwenden, um den Ausführungsfluss meiner GO -Anwendungen zu verstehen? Wie kann ich Tracing -Tools verwenden, um den Ausführungsfluss meiner GO -Anwendungen zu verstehen? Mar 10, 2025 pm 05:36 PM

Wie kann ich Tracing -Tools verwenden, um den Ausführungsfluss meiner GO -Anwendungen zu verstehen?

Wie kann ich benutzerdefinierte Typ -Einschränkungen für Generika in Go definieren? Wie kann ich benutzerdefinierte Typ -Einschränkungen für Generika in Go definieren? Mar 10, 2025 pm 03:20 PM

Wie kann ich benutzerdefinierte Typ -Einschränkungen für Generika in Go definieren?

Wie konvertieren Sie die Liste der MySQL -Abfrageergebnisse in eine benutzerdefinierte Struktur -Slice in Go -Sprache? Wie konvertieren Sie die Liste der MySQL -Abfrageergebnisse in eine benutzerdefinierte Struktur -Slice in Go -Sprache? Mar 03, 2025 pm 05:18 PM

Wie konvertieren Sie die Liste der MySQL -Abfrageergebnisse in eine benutzerdefinierte Struktur -Slice in Go -Sprache?

Wie schreibe ich Dateien in Go Language bequem? Wie schreibe ich Dateien in Go Language bequem? Mar 03, 2025 pm 05:15 PM

Wie schreibe ich Dateien in Go Language bequem?

Wie kann ich Linter und statische Analyse -Tools verwenden, um die Qualität und Wartbarkeit meines GO -Codes zu verbessern? Wie kann ich Linter und statische Analyse -Tools verwenden, um die Qualität und Wartbarkeit meines GO -Codes zu verbessern? Mar 10, 2025 pm 05:38 PM

Wie kann ich Linter und statische Analyse -Tools verwenden, um die Qualität und Wartbarkeit meines GO -Codes zu verbessern?

See all articles