Heim > Backend-Entwicklung > Golang > Wie kann ich Dateipfade aus Go Binary TEXT-Anweisungen entfernen?

Wie kann ich Dateipfade aus Go Binary TEXT-Anweisungen entfernen?

Susan Sarandon
Freigeben: 2024-12-11 18:13:11
Original
711 Leute haben es durchsucht

How Can I Remove File Paths from Go Binary TEXT Directives?

Entfernen von Dateipfaden aus TEXT-Anweisungen in Go-Binärdateien

Problem:

Beim Erstellen von Go ausführbare Dateien, Pfadinformationen wie z „/Users/myuser/dev/go/src/fooapi/spikes/mongoapi.go“ ist häufig in den TEXT-Anweisungen innerhalb der Assembly enthalten. Diese Pfadinformationen können in bestimmten Szenarien unerwünscht sein.

Lösung:

Um Dateipfadinformationen zu entfernen, verwenden Sie währenddessen das Flag -trimpath in Verbindung mit -gcflags und -asmflags Der Build-Prozess:

CGO_ENABLED=0 go build -v -a -ldflags="-w -s" \
    -gcflags=-trimpath=/Users/myuser/dev/go/src \
    -asmflags=-trimpath=/Users/myuser/dev/go/src \
    -o ./fooapi spikes/mongoapi.go
Nach dem Login kopieren

Wie es ist Funktioniert:

Durch die Übergabe von -trimpath an -gcflags und -asmflags werden alle Pfadinformationen aus der Elf-Binärdatei entfernt. Dadurch wird sichergestellt, dass die TEXT-Anweisungen in der Assembly nur die relevanten Funktionsnamen und Offsets enthalten, ohne die zugehörigen Dateipfade.

Überprüfung:

Sie können das Ergebnis mit überprüfen der objdump-Befehl des Go-Tools:

$ go tool objdump ./fooapi
.
.
TEXT main.init(SB) api/spikes/mongoapi.go
mongoapi.go:60  0x12768c0   65488b0c25a0080000  GS MOVQ GS:0x8a0, CX
mongoapi.go:60  0x12768c9   483b6110        CMPQ 0x10(CX), SP
mongoapi.go:60  0x12768cd   7663            JBE 0x1276932
.
.
Nach dem Login kopieren

Wie Sie sehen können, der Dateipfad „/Users/myuser/dev/go/src/api/spikes/mongoapi.go“ wurde aus den TEXT-Anweisungen entfernt.

Zusätzliche Informationen:

Verwendung Das Strip-Tool zum Entfernen von Dateipfadinformationen wird nicht empfohlen, da es möglicherweise zu fehlerhaften ausführbaren Dateien führen kann. Das Flag -trimpath bietet eine kontrollierte und zuverlässigere Möglichkeit, das gewünschte Ergebnis zu erzielen.

Das obige ist der detaillierte Inhalt vonWie kann ich Dateipfade aus Go Binary TEXT-Anweisungen entfernen?. 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