STRIP(1) | Strumenti di sviluppo GNU | STRIP(1) |
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-2024 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.
5 agosto 2024 | binutils-2.43.0 |