Heim >Backend-Entwicklung >Golang >Wie kann ich den Namen der aktuellen Funktion in Go zum Debuggen abrufen?
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() }
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()) }
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!