Maison > développement back-end > Golang > Comment puis-je supprimer les chemins de fichiers des directives Go Binary TEXT ?

Comment puis-je supprimer les chemins de fichiers des directives Go Binary TEXT ?

Susan Sarandon
Libérer: 2024-12-11 18:13:11
original
710 Les gens l'ont consulté

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

Suppression des chemins de fichiers des directives TEXTE dans les binaires Go

Problème :

Lors de la construction de Go exécutables, informations de chemin telles que "/Users/myuser/dev/go/src/fooapi/spikes/mongoapi.go" est souvent inclus dans les directives TEXT de l'assembly. Ces informations de chemin peuvent être indésirables dans certains scénarios.

Solution :

Pour supprimer les informations de chemin de fichier, utilisez l'indicateur -trimpath en conjonction avec -gcflags et -asmflags pendant le processus de construction :

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
Copier après la connexion

Comment Fonctionne :

Passer -trimpath à -gcflags et -asmflags supprime toutes les informations de chemin du binaire elf. Cela garantit que les directives TEXT de l'assembly contiennent uniquement les noms de fonctions et les décalages pertinents, sans les chemins de fichiers associés.

Vérification :

Vous pouvez vérifier le résultat en utilisant la commande objdump de l'outil go :

$ 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
.
.
Copier après la connexion

Comme vous pouvez le voir, le chemin du fichier "/Users/myuser/dev/go/src/api/spikes/mongoapi.go" a été supprimé des directives TEXT.

Informations supplémentaires :

Utilisation l'outil de suppression pour supprimer les informations sur le chemin du fichier n'est pas recommandé car il peut potentiellement conduire à des exécutables cassés. L'indicateur -trimpath fournit un moyen plus contrôlé et plus fiable d'obtenir le résultat souhaité.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal