STRIP(1) | Narzędzia programistyczne GNU | STRIP(1) |
strip - discard symbols and other data from object files
strip [-F bfdname |--target=bfdname]
[-I bfdname |--input-target=bfdname]
[-O bfdname |--output-target=bfdname]
[-s|--strip-all]
[-S|-g|-d|--strip-debug]
[--strip-dwo]
[-K symbolname|--keep-symbol=symbolname]
[-M|--merge-notes][--no-merge-notes]
[-N symbolname |--strip-symbol=symbolname]
[-w|--wildcard]
[-x|--discard-all] [-X |--discard-locals]
[-R sectionname |--remove-section=sectionname]
[--keep-section=sectionpattern]
[--remove-relocations=sectionpattern]
[--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]
objfile...
GNU strip usuwa wszystkie symbole z plików obiektowych objfile. Lista plików obiektowych może zawierać archiwa. Podany musi być przynajmniej jeden plik obiektowy.
strip modyfikuje pliki podane w argumencie - nie zapisuje zmodyfikowanych kopii pod innymi nazwami.
Jeśli pierwszym znakiem sctionname jest znak wykrzyknika ("!"), to pasujące sekcje nie będą usuwane, nawet jeśli poprzednie użycie opcji --remove-section w tej samej linii poleceń spowodowałoby ich usunięcie. Na przykład:
--remove-section=.text.* --remove-section=!.text.foo
usunie wszystkie sekcje pasujące do wzorca ".text.*", z wyjątkiem sekcji ".text.foo".
--remove-relocations=.text.*
usunie wszystkie relokacje z wszystkich sekcji pasujących do wzorca ".text.*".
Jeśli pierwszym znakiem sectionpattern jest znak wykrzyknika ("!"), to relokacje nie będą usuwane z pasujących sekcje, nawet jeśli poprzednie użycie opcji --remove-relocations w tej samej linii poleceń spowodowałoby usunięcie relokacji. Na przykład:
--remove-relocations=.text.* --remove-relocations=!.text.foo
usunie wszystkie relokacje z sekcji pasujących do wzorca ".text.*", z wyjątkiem relokacji w sekcji ".text.foo".
Jeśli binutils zostało skonfigurowane z opcją --enable-deterministic-archives, to jest to zachowanie domyślne. Można je wyłączyć za pomocą poniżej opisanej opcji -U.
Jest to zachowanie domyślne, o ile binutils nie został skonfigurowany z --enable-deterministic-archives.
-w -K !foo -K fo*
spowoduje, że strip zachowa tylko te symbole, które zaczynają się od liter "fo", ale usunie symbol "foo".
Uwaga: pozostawiane są nagłówki usuniętych sekcji, włączając to ich rozmiary, ale sama zawartość sekcji jest usuwana. Nagłówki sekcji są pozostawiane po to, żeby inne narzędzia mogły sparować plik debuginfo z rzeczywisty programem wykonywalnym nawet wtedy, gdy ten program został realokowany do innej przestrzeni adresów,
Założenie jest takie, że ta opcja będzie używana łącznie z --add-gnu-debuglink, aby utworzyć dwuczęściowy plik wykonywalny. Pierwsza część to program binarny pozbawiony zbędnych symboli, który zajmuje mniej miejsca w pamięci RAM i w pakiecie dystrybucji systemu, a druga część zawiera plik informacji debugowania, potrzebny tylko wtedy, gdy wymagane do debugowanie aplikacji. Sugerowany sposób tworzenia tych plików jest następujący:
Uwaga: Wybór ".dbg" jako rozszerzenia plików zawierających informacje debugowania jest całkowicie przypadkowy. Także krok "--only-keep-debug" jest opcjonalny. Zamiast niego można wykonać:
Oznacza to, że plik wskazywany przez --add-gnu-debuglink może być pełnym programem wykonywalnym. Nie musi to być plik tworzony przez opcję --only-keep-debug.
Uwaga: ta opcja jest przeznaczona do użycia tylko z całkowicie skonsolidowanymi plikami. Nie ma ona sensu w przypadku plików obiektowych, w których informacje debugowania mogą nie być kompletne. Poza tym właściwość gnu_debuglink obecnie dopuszcza wystąpienie nazwy tylko jednego pliku zawierającego informacjami debugowania, czyli nie pozwala na wiele plików, z których każdy zawierałby informacje debugowania dla osobnego pliku obiektowego.
Opcje w pliku są rozdzielane białymi znakami. Biały znak może wystąpić w opcji, jeśli cała opcja zostanie ujęta w pojedyncze albo podwójne cudzysłowy. Można dodać dowolny znak (włączając w to znak odwrotnego ukośnika), poprzedzając go znakiem odwrotnego ukośnika. Plik może również zawierać dodatkowe opcje @plik - w takim przypadku każda z takich opcji będzie przetwarzana rekurencyjnie.
wpisy info binutils.
Copyright (c) 1991-2023 Free Software Foundation, Inc.
Zezwala się na kopiowanie, rozpowszechnianie i/lub modyfikowanie tego dokumentu na warunkach Licencji Wolnej Dokumentacji GNU (GNU Free Documentation License) w wersji 1.3 lub jakiejkolwiek nowszej wersji opublikowanej przez Fundację Wolnego Oprogramowania, przy czym Sekcjami niezmiennymi są "GNU General Public License" i "GNU Free Documentation License", bez treści przedniej lub tylnej strony okładki. Egzemplarz licencji zamieszczono w sekcji zatytułowanej "GNU Free Documentation License".
Autorami polskiego tłumaczenia niniejszej strony podręcznika są: Przemek Borys <pborys@dione.ids.pl> i Robert Luberda <robert@debian.org>
Niniejsze tłumaczenie jest wolną dokumentacją. Bliższe informacje o warunkach licencji można uzyskać zapoznając się z GNU General Public License w wersji 3 lub nowszej. Nie przyjmuje się ŻADNEJ ODPOWIEDZIALNOŚCI.
Błędy w tłumaczeniu strony podręcznika prosimy zgłaszać na adres listy dyskusyjnej manpages-pl-list@lists.sourceforge.net.
25 listopada 2023 r. | binutils-2.41 |