Heim > Backend-Entwicklung > Golang > Wie kann ich den Namen der aktuellen Funktion in Go zum Debuggen abrufen?

Wie kann ich den Namen der aktuellen Funktion in Go zum Debuggen abrufen?

Patricia Arquette
Freigeben: 2024-12-13 02:58:10
Original
530 Leute haben es durchsucht

How Can I Get the Current Function's Name in Go for Debugging?

So erhalten Sie Funktionsnamen zum Debuggen

Um die Debugging-Funktionen zu verbessern, ist es entscheidend, den Namen der aktuellen Funktion zu erhalten. Ähnlich wie das FUNCTION-Makro von gcc bietet Go Mechanismen zum Abrufen dieser Informationen.

Betrachten Sie die folgende Funktion:

func foo() {
    trace()
}
Nach dem Login kopieren

Wir möchten, dass Informationen wie z. B. automatisch gedruckt werden "Eingabe von foo()...".

Das Laufzeitpaket bietet das Notwendige Funktionalität:

import "fmt"

func trace() {
    pc := make([]uintptr, 10)  // At least one entry required
    runtime.Callers(2, pc)

    // Get the function associated with the program counter
    f := runtime.FuncForPC(pc[0])

    // Obtain the file name, line number, and function name
    file, line := f.FileLine(pc[0])
    fmt.Printf("%s:%d %s\n", file, line, f.Name())
}
Nach dem Login kopieren

In diesem Skript füllt Callers den PC-Slice mit Programmzählern, die den aufrufenden Funktionen zugeordnet sind. Anschließend verwenden wir FuncForPC, um die Funktion abzurufen, die dem ersten Programmzähler im Slice zugeordnet ist. Schließlich stellt FileLine den Dateinamen, die Zeilennummer und den Funktionsnamen bereit, die auf der Konsole ausgegeben werden.

Das obige ist der detaillierte Inhalt vonWie kann ich den Namen der aktuellen Funktion in Go zum Debuggen abrufen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage