Man page - strip(1)

Packages contains this manual

Available languages:

en it pl ja ro

Manual

STRIP

NAZWA
SKŁADNIA
OPIS
OPCJE
ZOBACZ TAKŻE
PRAWA AUTORSKIE
TŁUMACZENIE

NAZWA

strip - usuwa symbole i inne dane z plików obiektowych

SKŁADNIA

strip [ -F nazwa-bfd | --target= nazwa-bfd ]
[ -I nazwa-bfd | --input-target= nazwa-bfd ]
[ -O nazwa-bfd | --output-target= nazwa-bfd ]
[ -s | --strip-all ]
[ -S | -g | -d | --strip-debug ]
[ --strip-dwo ]
[ -K nazwa-symbolu | --keep-symbol= nazwa-symbolu ]
[ -M | --merge-notes ][ --no-merge-notes ]
[ -N nazwa-symbolu | --strip-symbol= nazwa-symbolu ]
[ -w | --wildcard ]
[ -x | --discard-all ] [ -X | --discard-locals ]
[ -R nazwa-sekcji | --remove-section= nazwa-sekcji ]
[ --keep-section= wzorzec-sekcji ]
[ --remove-relocations= wzorzec-sekcji ]
[ --strip-section-headers ]
[ -o plik ] [ -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 ]
plik-obiektowy
...

OPIS

GNU strip usuwa wszystkie symbole z plików obiektowych plik-obiektowy . 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.

OPCJE

-F nazwa-bfd
--target=
nazwa-bfd

Traktuje oryginalny plik-obiektowy jak plik obiektowy w formacie nazwa-bfd i zapisuje go w tym samym formacie.

--help

Wypisuje sposób użycia strip z wiersza poleceń i kończy pracę programu.

--info

Wyświetla listę wszystkich dostępnych architektur i formatów plików obiektowych.

-I nazwa-bfd
--input-target=
nazwa-bfd

Traktuje oryginalny plik-obiektowy jako plik o formacie kodu obiektowego nazwa-bfd .

-O nazwa-bfd
--output-target=
nazwa-bfd

Zastępuje plik-obiektowy plikiem w formacie wyjściowym nazwa-bfd .

-R nazwa-sekcji
--remove-section=
nazwa-sekcji

Oprócz sekcji które normalnie są usuwane, usuwa z pliku wyjściowego także każdą sekcję o nazwie nazwa-sekcji . Opcja ta może być podana więcej niż raz. Proszę zauważyć, że jej nieodpowiednie używanie może spowodować, że plik obiektowy będzie bezużyteczny. Nazwa-sekcji może się kończyć znakiem dopasowania * . W takim przypadku zostaną usunięte sekcje o nazwach zaczynających się od nazwy-sekcji .

Jeśli pierwszym znakiem nazwy-sekcji 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”.

--keep-section= wzorzec-sekcji

Przy usuwaniu sekcji z pliku wyjściowego, pozostawia sekcje pasujące do wzorca-sekcji .

--remove-relocations= wzorzec-sekcji

Usuwa z pliku wynikowego relokacje w każdej sekcji pasującej do wzorca-sekcji . Opcja ta może być podana więcej niż raz. Proszę zauważyć, że jej nieodpowiednie używanie może spowodować, że plik obiektowy będzie bezużyteczny. Wzorzec-sekcji może zawierać znaki dopasowania. Na przykład:

--remove-relocations=.text.*

usunie wszystkie relokacje z wszystkich sekcji pasujących do wzorca „.text.*”.

Jeśli pierwszym znakiem wzorca-sekcji jest znak wykrzyknika („!”), to relokacje nie będą usuwane z pasujących sekcji, 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”.

--strip-section-headers

Usuwa nagłówki sekcji. Opcja jest przeznaczona do plików ELF. Wymusza --strip-all i --merge-notes .

-s

--strip-all

Usuwa wszystkie symbole.

-g

-S

-d

--strip-debug

Usuwa tylko symbole debugowania.

--strip-dwo

Usuwa zawartość wszystkich sekcji DWARF .dwo, pozostawiając pozostałe sekcje i wszystkie symbole. Więcej informacji można znaleźć w opisie tej opcji w rozdziale objcopy .

--strip-unneeded

Usuwa wszystkie symbole, które nie są potrzebne do przetwarzania relokacji, oprócz symboli debugowania i sekcji, usuwanych przez --strip-debug .

-K nazwa-symbolu
--keep-symbol=
nazwa-symbolu

Podczas usuwania symboli zachowuje symbol nazwa-symbolu , nawet jeśli normalnie byłby usunięty. Opcja ta może być podawana więcej niż jeden raz.

-M

--merge-notes
--no-merge-notes

W przypadku plików ELF próbuje (lub nie próbuje) zredukować rozmiar sekcji typu SHT_NOTE, przez usunięcie zduplikowanych notatek. Domyślnie próba takiej redukcji ma miejsce chyba, że dochodzi do usuwania informacji debugowania lub DWO.

-N nazwa-symbolu
--strip-symbol=
nazwa-symbolu

Usuwa symbol nazwa-symbolu z pliku źródłowego. Opcja ta może być podawana więcej niż raz i łączona z innymi opcjami usuwania z wyjątkiem -K .

-o plik

Umieszcza ogołocone wyjście w pliku bez zastępowania istniejącego pliku. Z tym argumentem podany może być tylko jeden argument plik-obiektowy .

-p

--preserve-dates

Zachowuje prawa dostępu i daty modyfikacji pliku.

-D

--enable-deterministic-archives

Działa w trybie deterministycznym . Podczas kopiowania członków archiwum i zapisywania indeksu archiwum używa wartości zero w polach UID, GID , znacznika czasowego, a także używa jednolitych praw dostępu do wszystkich plików.

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 .

-U

--disable-deterministic-archives

Nie działa w trybie deterministycznym . Jest to odwrotność opcji -D opisanej powyżej: podczas kopiowania członków archiwum i zapisywania indeksu archiwum używa właściwych wartości pól UID, GID, znacznika czasowego i praw dostępu do pliku.

Jest to zachowanie domyślne, o ile binutils nie został skonfigurowany z --enable-deterministic-archives .

-w

--wildcard

Pozwala na użycie wyrażeń regularnych w argumentach nazwa-symbolu pozostałych opcji linii poleceń. W dowolnej części nazwy symbolu można użyć znaku zapytania („?”), gwiazdki („*”), odwrotnego ukośnika („\”) oraz operatora nawiasów kwadratowych („[]”). Jeśli pierwszym znakiem nazwy symbolu jest wykrzyknik („!”), to dla tego symbolu przełącznik ma odwrotne znacznie. Na przykład:

-w -K !foo -K fo*

spowoduje, że strip zachowa tylko te symbole, które zaczynają się od liter „fo”, ale usunie symbol „foo”.

-x

--discard-all

Usuwa symbole nieglobalne.

-X

--discard-locals

Usuwa generowane przez kompilator symbole lokalne (zaczynają się zwykle od L lub . ).

--keep-section-symbols

Podczas usuwania symboli z pliku, na przykład za pomocą --strip-debug lub --strip-unneeded , pozostawia wszystkie symbole określające nazwy sekcji, które w przeciwnym wypadku zostałyby usunięte.

--keep-file-symbols

Podczas usuwania symboli z pliku, na przykład za pomocą --strip-debug lub --strip-unneeded , pozostawia wszystkie symbole określające nazwy plików źródłowych, które w przeciwnym wypadku zostałyby usunięte.

--only-keep-debug

Usuwa symbole z pliku, czyszcząc zawartość wszystkich sekcji, które nie zostałyby wyczyszczone przez --strip-debug , ale pozostawiając sekcje debugowania nienaruszone. W plikach ELF pozostawia to także sekcje notatek.

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:
1.<Skonsoliduj program wykonywalny, jak to się zwykle robi.
Zakładając, że jest to nazwane>

"foo", to...

1.<Run "objcopy --only-keep-debug foo foo.dbg" to>

utworzyć plik zawierający informacje debugowania.

1.<Run "objcopy --strip-debug foo" to create a>

wyczyszczony ze zbędnych sekcji program wykonywalny.

1.<Run "objcopy --add-gnu-debuglink=foo.dbg foo">

aby dodać informacje debugowania do programu wykonywalnego wyczyszczonego ze zbędnych sekcji.

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ć:
1. Skonsoliduj program wykonywalny, jak to się zwykle robi.
1.<Copy "foo" to "foo.full">
1.<Run "strip --strip-debug foo">
1.<Run "objcopy --add-gnu-debuglink=foo.full foo">

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.

-V

--version

Wypisuje numer wersji programu strip .

-v

--verbose

Szczegółowe wyjście: wyświetla wszystkie zmodyfikowane pliki obiektowe. W wypadku archiwów, strip -v wyświetla wszystkich członków archiwum.

@ plik

Czyta opcje wiersza poleceń z podanego pliku . Przeczytane opcje są wstawiane w miejsce oryginalnej opcji @plik. Jeśli plik nie istnieje lub nie może być odczytany, ta opcja jest traktowana dosłownie i nie jest usuwana.

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.

ZOBACZ TAKŻE

wpisy info binutils .

PRAWA AUTORSKIE

Copyright (c) 1991-2025 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”.

TŁUMACZENIE

Tłumaczenie niniejszej strony podręcznika: Przemek Borys <pborys@dione.ids.pl>, Robert Luberda <robert@debian.org> i Michał Kułach <michal.kulach@gmail.com>

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 .