STRIP(1)

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

SINOPSIS
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]
      [--plugin nume]
      [-v |--verbose] [-V|--version]
      [--help] [--info]
      fișier-obiect...

DESCRIERE
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.

OPȚIUNI

-F nume-bfd
--target=nume-bfd
    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.

--help
    Afișează un rezumat al opțiunilor pentru strip și iese.

--info
    Afișează o listă cu toate arhitecturile și formatele de obiecte disponibile.

-I nume-bfd
--input-target=nume-bfd
    Tratează fișierul original fișier-obiect ca pe un fișier cu formatul de cod obiect nume-bfd.

-O nume-bfd
--output-target=nume-bfd
    Înlocuiește fișierul-obiect cu un fișier în formatul de ieșire nume-bfd.

-R nume-secțiune
--remove-section=nume-secțiune
    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'.

--keep-section=model-secțiune
    Atunci când se elimină secțiuni din fișierul de ieșire, păstrează secțiunile care se potrivesc cu model-secțiune.

--remove-relocations=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'.

--strip-section-headers
    Îndepărtează anteturile de secțiune. Această opțiune este specifică pentru fișierele ELF. Implică --strip-all și --merge-notes.

-s
--strip-all
    Elimină toate simbolurile.

-g
-S
-d
--strip-debug
    Elimină doar simbolurile de depanare.

--strip-dwo
    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.

--strip-unneeded
    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.

-K nume-simbol
--keep-symbol=nume-simbol
    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.

-M
--merge-notes
--no-merge-notes
    Î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.

-N nume-simbol
--strip-symbol=nume-simbol
    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.

-o fișier
    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
--preserve-dates
    Păstrează datele (data-ora) de acces și de modificare a fișierului.

-D
--enable-deterministic-archives
    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.

-U
--disable-deterministic-archives
    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.

-w
--wildcard
    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”.

-x
--discard-all
    Elimină simbolurile care nu sunt globale.

-X
--discard-locals
    Elimină simbolurile locale generate de compilator; (acestea încep de obicei cu L sau .).

--keep-section-symbols
    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.

--keep-file-symbols
    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.

--only-keep-debug
    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..

    2.  Rulați "objcopy --only-keep-debug foo foo.dbg" pentru a crea un fișier care conține informațiile de depanare.

    3.  Rulați "strip --strip-debug foo" pentru a crea un executabil simplificat.

    4.  Rulați "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.

    2.  Copiază "foo" la "foo.full".

    3.  Rulați "strip --strip-debug foo".

    4.  Rulați "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.

--plugin nume
    Încarcă modulul numit nume pentru a adăuga suport pentru alte tipuri de ținte. Această opțiune este disponibilă numai dacă setul de instrumente a fost construit cu suportul pentru module activat.

    Dacă opțiunea --plugin nu este furnizată, dar suportul pentru module a fost activat, atunci strip parcurge fișierele din ${libdir}/bfd-plugins în ordine alfabetică și se utilizează primul modul de extensie care revendică obiectul în cauză.

    Vă rugăm să rețineți că acest director de căutare de module nu este cel folosit de opțiunea -plugin a ld. Pentru ca strip să utilizeze modulul editorului de legături, acesta trebuie copiat în directorul ${libdir}/bfd-plugins. Pentru compilațiile bazate pe GCC, modulul editorului de legături se numește liblto_plugin.so.0.0.0.0. Pentru compilațiile bazate pe Clang, acesta se numește LLVMgold.so. Modulul GCC este întotdeauna compatibil cu versiunile anterioare, astfel încât este suficient să se copieze doar cel mai nou.

-V
--version
    Afișează numărul de versiune pentru strip.

-v
--verbose
    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.

CONSULTAȚI ȘI
intrările Info pentru binutils.

DREPTURI DE AUTOR
Drepturi de autor © 1991-2026 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”.

TRADUCERE
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 (https://www.gnu.org/licenses/gpl-3.0.html) 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.