STRIP(1) Instrumente pentru dezvoltare(programare) GNU STRIP(1)

strip - înlătură simbolurile și alte date din fișierele obiect

strip [-F nume-bfd |--target=nume-bfd]
[-I nume-bfd |--input-target=nume-bfd]
[-O nume-bfd |--output-target=nume-bfd]
[-s|--strip-all]
[-S|-g|-d|--strip-debug]
[--strip-dwo]
[-K nume-simbol|--keep-symbol=nume-simbol]
[-M|--merge-notes][--no-merge-notes]
[-N nume-simbol |--strip-symbol=nume-simbol]
[-w|--wildcard]
[-x|--discard-all] [-X |--discard-locals]
[-R nume-secțiune |--remove-section=nume-secțiune]
[--keep-section=model-secțiune]
[--remove-relocations=model-secțiune]
[--strip-section-headers]
[-o fișier] [-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]
fișier-obiect...

GNU strip elimină toate simbolurile din fișierele obiect objfile. Lista de fișiere obiect poate include arhive. Trebuie indicat cel puțin un fișier obiect.

strip modifică fișierele menționate în argumentul său, în loc să scrie copii modificate sub nume diferite.

Tratează fișierul original fișier-obiect ca pe un fișier cu formatul de cod obiect nume-bfd și îl rescrie în același format.
Afișează un rezumat al opțiunilor pentru strip și iese.
Afișează o listă cu toate arhitecturile și formatele de obiecte disponibile.
Tratează fișierul original fișier-obiect ca pe un fișier cu formatul de cod obiect nume-bfd.
Înlocuiește fișierul-obiect cu un fișier în formatul de ieșire nume-bfd.
Elimină orice secțiune numită nume-secțiune din fișierul de ieșire, în plus față de orice secțiune care ar fi fost eliminată altfel. Această opțiune poate fi dată de mai multe ori. Rețineți că utilizarea necorespunzătoare a acestei opțiuni poate face ca fișierul de ieșire să nu mai poată fi utilizat. Caracterul Joker * poate fi introdus la sfârșitul lui nume-secțiune. În acest caz, orice secțiune care începe cu nume-secțiune va fi eliminată.

Dacă primul caracter din model-secțiune este semnul exclamării (!), atunci secțiunile corespunzătoare nu vor fi eliminate chiar dacă o utilizare anterioară a --remove-section pe aceeași linie de comandă ar fi eliminat-o în caz contrar. De exemplu:

--remove-section=.text.* --remove-section=!.text.foo

va elimina toate secțiunile care corespund modelului ".text.*", dar nu va elimina secțiunea ".text.foo"

Atunci când se elimină secțiuni din fișierul de ieșire, păstrează secțiunile care se potrivesc cu model-secțiune.
Elimină realocările din fișierul de ieșire pentru orice secțiune care se potrivește cu model-secțiune. Această opțiune poate fi dată de mai multe ori. Rețineți că utilizarea necorespunzătoare a acestei opțiuni poate face ca fișierul de ieșire să nu mai poată fi utilizat. Caracterele joker sunt acceptate în model-secțiune. De exemplu:
--remove-relocations=.text.*

va elimina realocările pentru toate secțiunile care se potrivesc cu modelul '.text.*'.

Dacă primul caracter din model-secțiune este semnul exclamării (!), atunci secțiunile care se potrivesc nu vor avea realocările eliminate, chiar dacă o utilizare anterioară a --remove-relocations pe aceeași linie de comandă ar fi determinat altfel eliminarea realocărilor. De exemplu:

--remove-relocations=.text.* --remove-relocations=!.text.foo

va elimina toate realocările pentru secțiunile care corespund modelului '.text.*', dar nu va elimina realocările pentru secțiunea '.text.foo'.

Îndepărtează anteturile de secțiune. Această opțiune este specifică pentru fișierele ELF. Implică --strip-all și --merge-notes.
Elimină toate simbolurile.
Elimină doar simbolurile de depanare.
Elimină conținutul tuturor secțiunilor DWARF .dwo, lăsând secțiunile de depanare rămase și toate simbolurile intacte. Pentru mai multe informații, consultați descrierea acestei opțiuni în secțiunea objcopy.
Elimină toate simbolurile care nu sunt necesare pentru procesarea realocării, în plus față de simbolurile de depanare și secțiunile eliminate de --strip-debug.
La eliminarea simbolurilor, păstrează simbolul nume-simbol chiar dacă în mod normal ar fi eliminat. Această opțiune poate fi dată de mai multe ori.
În cazul fișierelor ELF, încearcă (sau nu încearcă) să reducă dimensiunea oricărei secțiuni de tip SHT_NOTE prin eliminarea notelor duplicate. Valoarea implicită este de a încerca această reducere dacă nu se elimină informațiile de depanare sau DWO.
Elimină simbolul nume-simbol din fișierul sursă. Această opțiune poate fi dată de mai multe ori și poate fi combinată cu alte opțiuni pentru eliminare decât -K.
Pune rezultatul eliminat în fișier, în loc să înlocuiască fișierul existent. Atunci când se utilizează acest argument, se poate specifica un singur argument fișier-obiect.
Păstrează datele (data-ora) de acces și de modificare a fișierului.
Funcționează în modul determinist. La copierea membrilor arhivei și la scrierea indexului arhivei, se utilizează zero pentru UID-uri, GID-uri, marcaje de timp și se utilizează moduri de fișier coerente pentru toate fișierele.

Dacă binutils a fost configurat cu --enable-deterministic-archives, atunci acest mod este activat în mod implicit. Acesta poate fi dezactivat cu opțiunea -U, de mai jos.

Nu funcționează în modul determinist. Aceasta este inversa opțiunii -D, de mai sus: atunci când copiază membrii arhivei și scrie indexul arhivei, utilizează valorile lor reale UID, GID, marcaj de timp și modul de fișier.

Aceasta este valoarea implicită, cu excepția cazului în care binutils a fost configurat cu --enable-deterministic-archives.

Permite expresii regulate în nume-simbols utilizate în alte opțiuni din linia de comandă. Operatorii semn de întrebare (?), asterisc (*), bara oblică inversă (\) și parantezele drepte ([]) pot fi utilizate oriunde în numele simbolului. Dacă primul caracter din numele simbolului este semnul exclamării (!), atunci sensul opțiunii este inversat pentru acel simbol. De exemplu:
-w -K !foo -K fo*

va face ca «strip» să păstreze doar simbolurile care încep cu literele „fo”, dar să elimine simbolul „foo”.

Elimină simbolurile care nu sunt globale.
Elimină simbolurile locale generate de compilator; (acestea încep de obicei cu L sau .).
Atunci când se elimină un fișier, poate cu --strip-debug sau --strip-unneeded, păstrează toate simbolurile care specifică nume de secțiuni, care altfel ar fi eliminate.
Atunci când se elimină un fișier, poate cu --strip-debug sau --strip-unneeded, păstrează toate simbolurile care specifică nume de fișiere sursă, care altfel ar fi eliminate.
Golește un fișier, golind conținutul tuturor secțiunilor care nu ar fi golite de --strip-debug si lăsând intacte secțiunile de depanare. În cazul fișierelor ELF, acest lucru păstrează toate secțiunile de note și în fișierul de ieșire.

Notă - antetele secțiunilor eliminate sunt păstrate, inclusiv dimensiunile lor, dar conținutul secțiunii este eliminat. Antetele secțiunilor sunt păstrate pentru ca alte instrumente să poată compara fișierul de depanare cu executabilul real, chiar dacă acesta a fost realocat într-un spațiu de adrese diferit.

Intenția este ca această opțiune să fie utilizată împreună cu --add-gnu-debuglink pentru a crea un executabil din două părți. Unul este un fișier binar curățat, care va ocupa mai puțin spațiu în RAM și în distribuție, iar al doilea este un fișier de informații de depanare, care este necesar doar dacă sunt necesare abilități de depanare. Procedura sugerată pentru a crea aceste fișiere este următoarea:

1.<Leagă executabilul în mod normal. Presupunând că acesta este numit >
"foo" apoi...
1.<Run "objcopy --only-keep-debug foo foo.dbg" to>
creează un fișier care conține informații de depanare.
1.<Run "objcopy --strip-debug foo" to create a>
executabil curățat.
1.<Run "objcopy --add-gnu-debuglink=foo.dbg foo">
pentru a adăuga o legătură către informațiile de depanare în executabilul curățat.

Notă - alegerea „.dbg” ca extensie pentru fișierul de informații de depanare este arbitrară. De asemenea, pasul „--only-keep-debug” este opțional. În schimb, ați putea face așa:

1.<Leagă executabilul în mod normal.>
1.<Copy "foo" to "foo.full">
1.<Run "strip --strip-debug foo">
1.<Run "objcopy --add-gnu-debuglink=foo.full foo">

adică, fișierul indicat de --add-gnu-debuglink poate fi executabilul complet. Nu trebuie să fie un fișier creat de opțiunea --only-keep-debug.

Notă - această opțiune este destinată utilizării numai pentru fișierele complet legate. Nu are sens să fie utilizat în cazul fișierelor obiect, unde informațiile de depanare pot fi incomplete. În plus, caracteristica gnu_debuglink suportă în prezent doar prezența unui singur nume de fișier care conține informații de depanare, nu mai multe nume de fișiere pentru fiecare fișier obiect în parte.

Afișează numărul de versiune pentru strip.
Ieșire detaliată: listează toate fișierele obiect modificate. În cazul arhivelor, strip -v enumeră toți membrii arhivei.
@fișier
Citește opțiunile liniei de comandă din fișier. Opțiunile citite sunt inserate în locul opțiunii originale @fișier. Dacă fișier nu există sau nu poate fi citit, atunci opțiunea va fi tratată literal și nu va fi eliminată.

Opțiunile din fișier sunt separate prin spații albe. Un caracter de spațiere poate fi inclus într-o opțiune prin includerea întregii opțiuni între ghilimele simple sau duble. Orice caracter (inclusiv o bară oblică inversă) poate fi inclus prin prefixarea caracterului care urmează să fie inclus cu o bară oblică inversă. fișier poate conține la rândul său opțiuni @fișier suplimentare; orice astfel de opțiuni vor fi procesate în mod recursiv.

intrările Info pentru binutils.

Drepturi de autor © 1991-2024 Free Software Foundation, Inc.

Se acordă permisiunea de a copia, distribui și/sau modifica acest document în conformitate cu termenii Licenței GNU Free Documentation, versiunea 1.3 sau orice versiune ulterioară publicată de Free Software Foundation; fără secțiuni invariante, fără texte de copertă și fără texte de contra copertă. O copie a licenței este inclusă în secțiunea intitulată „GNU Free Documentation License”.

Traducerea în limba română a acestui manual a fost făcută de Remus-Gabriel Chelu <remusgabriel.chelu@disroot.org>

Această traducere este documentație gratuită; citiți Licența publică generală GNU Versiunea 3 sau o versiune ulterioară cu privire la condiții privind drepturile de autor. NU se asumă NICIO RESPONSABILITATE.

Dacă găsiți erori în traducerea acestui manual, vă rugăm să trimiteți un e-mail la translation-team-ro@lists.sourceforge.net.

1 februarie 2024 binutils-2.42.0