Provided by: manpages-it_4.27.0-1_all 

NOME
strip - scarta simboli e altri dati dai file oggetto
SINTASSI
strip [-F nomebfd |--target=nomebfd]
[-I nomebfd |--input-target=nomebfd]
[-O nomebfd |--output-target=nomebfd]
[-s|--strip-all]
[-S|-g|-d|--strip-debug]
[--strip-dwo]
[-K nomesimbolo|--keep-symbol=nomesimbolo]
[-M|--merge-notes][--no-merge-notes]
[-N nomesimbolo |--strip-symbol=nomesimbolo]
[-w|--wildcard]
[-x|--discard-all] [-X |--discard-locals]
[-R nomesezione |--remove-section=nomesezione]
[--keep-section=modellosezione]
[--remove-relocations=modellosezione]
[--strip-section-headers]
[-o file] [-p|--preserve-dates]
[-D|--enable-deterministic-archives]
[-U|--disable-deterministic-archives]
[--keep-section-symbols]
[--keep-file-symbols]
[--only-keep-debug]
[-v |--verbose] [-V|--version]
[--help] [--info]
fileoggetto...
DESCRIZIONE
GNU strip scarta tutti i simboli dai file oggetto fileoggetto. L'elenco dei file oggetto può includere
archivi. Deve essere fornito almeno un file oggetto.
strip modifica i file nominati negli argomenti, anziché scrivere copie modificate con nomi differenti.
OPZIONI
-F nomebfd
--target=nomebfd
Tratta il fileoggetto originale come un file con il codice oggetto nel formato nomebfd, e lo riscrive
nello stesso formato.
--help
Mostra un sommario delle opzioni di strip ed esce.
--info
Visualizza un elenco che mostra tutte le architetture e i formati oggetto disponibili.
-I nomebfd
--input-target=nomebfd
Tratta l'originale fileoggetto come file con il codice oggetto nel formato nomebfd.
-O nomebfd
--output-target=nomebfd
Sostituisce fileoggetto con un file nel formato di output nomebfd.
-R nomesezione
--remove-section=nomesezione
Rimuove tutte le sezioni chiamate nomesezione dal file di output. Questa opzione può essere data più
di una volta. Notare che l'uso inappropriato di questa opzione può rendere inutilizzabile il file di
output. Il carattere "wildcard" * può essere dato alla fine di nomesezione. In tal caso, qualsiasi
sezione che inizia con nomesezione verrà rimossa.
Se il primo carattere di modellosezione è il punto esclamativo (!) allora la corrispondente sezione
non verrà rimossa anche se un precedente utilizzo di --remove-section sulla stessa riga di comando
avrebbe fatto diversamente. Ad esempio:
--remove-section=.text.* --remove-section=!.text.foo
rimuoverà tutte le sezioni corrispondenti al modello '.text.*', ma non rimuoverà la sezione
'.text.foo'.
--keep-section=modellosezione
Durante la rimozione di sezioni dal file di output, mantiene le sezioni che corrispondono a
modellosezione.
--remove-relocations=modellosezione
Rimuove rilocazioni dal file di output per ogni sezione corrispondente a modellosezione. Questa
opzione può essere usata più volte. Notare che usare quest'opzione in maniera inappropriata può fare
generare un file inutilizzabile. I caratteri jolly sono accetti da modellosezione. Ad esempio:
--remove-relocations=.text.*
rimuoverà le rilocazioni da tutte le sezioni che corrispondono al modello '.text.*'.
Se il primo carattere di modellosezione è un punto esclamativo (!) allora dalle corrispondenti
sezioni non verranno rimosse le rilocazioni anche se un precedente utilizzo di --remove-relocations
lo avrebbe fatto. Ad esempio:
--remove-relocations=.text.* --remove-relocations=!.text.foo
rimuoverà tutte le rilocazioni da sezioni che corrispondono al modello '.text.*', ma non le rimuoverà
dalla sezione '.text.foo'.
--strip-section-headers
Riduce le intestazioni di sezione. Questa opzione è specifica per i file ELF. Implica --strip-all e
--merge-notes.
-s
--strip-all
Rimuove tutti i simboli.
-g
-S
-d
--strip-debug
Rimuove solo i simboli di debug.
--strip-dwo
Rimuove il contenuto di tutte le sezioni DWARF .dwo, lasciando intatte le rimanenti sezioni di
debugging e tutti i simboli. Vedere la descrizione di questa opzione nella sezione objcopy per
maggiori dettagli.
--strip-unneeded
Rimuove tutti i simboli non necessari per il processo di rilocazione oltre ai simboli di debug e alle
sezioni rimosse da --strip-debug.
-K nomesimbolo
--keep-symbol=nomesimbolo
Quando viene sguarnito dei simboli, mantiene solo il simbolo nomesimbolo anche se normalmente
verrebbe rimosso. Quest'opzione può essere data più di una volta.
-M
--merge-notes
--no-merge-notes
Per i file ELF, cerca (o evita) di ridurre la dimensione di ogni sezione di tipo SHT_NOTE togliendo
le note duplicate. Il comportamento predefinito è di abilitare questa riduzione eccetto per le
informazioni di debug e DWO.
-N nomesimbolo
--strip-symbol=nomesimbolo
Rimuove il simbolo nomesimbolo dal file sorgente. Questa opzione può essere data più di una volta, e
può essere combinata con opzioni di strip diverse da -K.
-o file
Mette il risultato di strip in file, invece di sostituire il file esistente. Quando viene usato
questo argomento, può essere specificato solo un argomento fileoggetto.
-p
--preserve-dates
Preserva le date di accesso e modifica del file.
-D
--enable-deterministic-archives
Opera in modalità deterministica. Quando si copiano i membri dell'archivio e si scrive l'indice di
archivio, usa zero per gli UID, i GID e le marcature temporali, e usa permessi di file coerenti per
tutti i file.
Se binutils è stato configurato con --enable-deterministic-archives, questa modalità è attiva in modo
predefinito. Può essere disabilitata col modificatore -U.
-U
--disable-deterministic-archives
Non opera in modalità deterministica. Questo è l'inverso del modificatore D- visto sopra: quando si
copiano i membri dell'archivio e si scrive l'indice di archivio, producono i loro valori effettivi di
UID, GID, marcatura temporale e permessi.
Questo è il predefinito a meno che binutils non sia stato configurato con
--enable-deterministic-archives.
-w
--wildcard
Permette le espressioni regolari in nomesimbolo usate in altre opzioni da riga di comando. Gli
operatori punto di domanda (?), asterisco (*), barra inversa (\) e parentesi quadre ([]) possono
essere usati ovunque nel nome del simbolo. Se il primo carattere del nome del simbolo è il punto
esclamativo (!), il senso dell'opzione per tale simbolo è invertito. Per esempio:
-w -K !foo -K fo*
farà sì che strip prenda solo simboli che iniziano con le lettere "fo", ma scarterà il simbolo "foo".
-x
--discard-all
Rimuove i simboli non globali.
-X
--discard-locals
Rimuove i simboli locali generati dal compilatore. (Questi normalmente iniziano con L o ..)
--keep-section-symbols
Quando semplifica un file, magari con --strip-debug o con --strip-unneeded, mantiene qualsiasi
simbolo che specifichi nomi di sezioni che altrimenti sarebbero rimosse.
--keep-file-symbols
Quando semplifica un file, magari con --strip-debug o con --strip-unneeded, mantiene qualsiasi
simbolo che specifichi nomi di file sorgenti, che altrimenti sarebbero rimossi.
--only-keep-debug
Sguarnisce un file, svuotando il contenuto di ogni sezione che non verrebbe rimossa da --strip-debug
e lasciando le sezioni di debug intatte. Nei file ELF, questo preserva tutte le sezioni di note
nell'output.
Nota - le intestazioni di sezione delle sezioni svuotate sono mantenute, compresa la loro dimensione,
ma il contenuto ne è rimosso. Le intestazioni di sezione sono mantenute in modo che altri strumenti
le possano fare corrispondere le informazioni di debug con il vero eseguibile, anche quest'ultimo è
stato rilocato in un diverso spazio di indirizzi.
L'intenzione è che questa opzione venga usata in unione con --add-gnu-debuglink per creare un
eseguibile in due parti. Una è un binario completamente sguarnito che occuperà meno spazio in RAM e
in una distribuzione; la seconda è un file di informazione di debugging, che è necessario solo se
sono richieste capacità di debugging. La procedura suggerita per creare questi file è la seguente:
1.<Collega l'eseguibile come normale. Supponendo che sia chiamato>
"foo" then...
1.<Run "objcopy --only-keep-debug foo foo.dbg" to>
crea un file contenente le informazioni di debug.
1.<Run "objcopy --strip-debug foo" to create a>
eseguibile completamente sguarnito.
1.<Run "objcopy --add-gnu-debuglink=foo.dbg foo">
per aggiungere un collegamento alle informazioni di debugging nell'eseguibile sguarnito.
Nota---la scelta di ".dbg" come estensione del file di informazioni di debug è arbitraria. Anche il
passo "--only-keep-debug" è opzionale. Si può invece fare questo:
1.<Collega l'eseguibile come normale.>
1.<Copy "foo" to "foo.full">
1.<Run "strip --strip-debug foo">
1.<Run "objcopy --add-gnu-debuglink=foo.full foo">
ad esempio il file a cui punta --add-gnu-debuglink può essere l'eseguibile completo. Non deve essere
un file creato dall'opzione --only-keep-debug.
Nota --- quest'opzione è intesa soltanto per l'uso con file completamente collegati. Non ha senso
usarla su file oggetto dove l'informazione di debugging può essere incompleta. Inoltre la
funzionalità gnu_debuglink attualmente supporta la presenza di un solo nome di file contenente
informazioni di debugging, e non più nomi di file, uno per ogni file oggetto.
-V
--version
Mostra il numero di versione di strip.
-v
--verbose
Output prolisso: elenca tutti i file oggetto modificati. Nel caso di archivi, strip -v elenca tutti i
membri dell'archivio.
@file
Legge le opzioni da riga di comando da file. Le opzioni lette sono inserite al posto dell'opzione
originale @file. Se file non esiste o non può essere letto, l'opzione sarà trattata letteralmente, e
non rimossa.
Le opzioni in file sono separate da spazi vuoti. Si può includere uno spazio vuoto in un'opzione
racchiudendo l'intera opzione fra apici, singoli o doppi. Può essere incluso qualsiasi carattere
(compresa la barra inversa) facendo precedere al carattere una barra inversa. Il file può esso stesso
contenere ulteriori opzioni @file; ciascuna di queste opzioni sarà elaborata ricorsivamente.
VEDERE ANCHE
i campi Info per binutils.
COPYRIGHT
Copyright (c) 1991-2025 Free Software Foundation, Inc.
È permesso copiare, distribuire e/o modificare questo documento nei termini della “Licenza per
documentazione libera GNU” (GNU Free Documentation License), versione 1.3 o ogni versione successiva
pubblicata dalla Free Software Foundation; senza sezioni non modificabili, senza testi di prima di
copertina e di quarta di copertina. Una copia della licenza è inclusa nella sezione intitolata “Licenza
per la documentazione libera GNU" (GNU Free Documentation License).
TRADUZIONE
La traduzione italiana di questa pagina di manuale è stata creata da Giulio Daprelà <giulio@pluto.it>,
Marco Curreli <marcocurreli@tiscali.it> e Giuseppe Sacco <eppesuig@debian.org>
Questa traduzione è documentazione libera; leggere la GNU General Public License Versione 3 o successiva
per le condizioni di copyright. Non ci assumiamo alcuna responsabilità.
Per segnalare errori nella traduzione di questa pagina di manuale inviare un messaggio a pluto-
ildp@lists.pluto.it.
binutils-2.44 3 marzo 2025 STRIP(1)