Man page - strip(1)
Packages contains this manual
apt-get install binutils-common
Available languages:
en it pl ja roManual
STRIP
NAZWASKŁ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 .