Strip

Från Wiki.linux.se
Hoppa till navigering Hoppa till sök

strip - Ta bort symboltabeller och andra delar från objektfiler

Kommandot `strip` används för att ta bort symboltabeller och andra delar från objektfiler för att minska deras storlek.

Syntax

strip [ALTERNATIV] FIL...

Beskrivning

Kommandot `strip` tar bort symboltabeller, felsökningsinformation och andra delar från objektfiler. Detta kan minska filernas storlek och göra dem svårare att reversera eller felsöka.

Alternativ

Kommandot `strip` stöder flera alternativ som kan användas för att justera dess beteende:

  • -I, --input-target=BFDNAME - Ange binärfilens inputformat.
  • -O, --output-target=BFDNAME - Ange binärfilens outputformat.
  • -F, --target=BFDNAME - Ange både input och output format.
  • -p, --preserve-dates - Bevara datumstämplar.
  • -R, --remove-section=NAME - Ta bort specificerad sektion.
  • -s, --strip-all - Ta bort alla symboler.
  • -g, --strip-debug - Ta bort endast felsökningssymboler.
  • --strip-dwo - Ta bort DWARF-kompilerade enhetsobjekt (DWO) sektioner.
  • -K, --keep-symbol=SYMBOL - Behåll endast specificerad symbol.
  • -N, --strip-symbol=SYMBOL - Ta bort specificerad symbol.
  • -w, --wildcard - Använd wildcard-mönster.
  • -x, --discard-all - Kassera alla lokala symboler.
  • -X, --discard-locals - Kassera temporära lokala symboler.
  • --keep-file-symbols - Behåll filsymboler.
  • --only-keep-debug - Behåll endast felsökningssymboler.
  • --strip-unneeded - Ta bort symboler som inte behövs.
  • --remove-relocations=SECTION - Ta bort relokeringar.
  • --help - Visa hjälpmeddelande och avsluta.
  • -v, --version - Visa versionsinformation och avsluta.

Exempel

Här är några praktiska exempel som visar hur du kan använda `strip`-kommandot:

  • För att ta bort alla symboler från en objektfil:

strip -s fil.o

  • För att ta bort endast felsökningssymboler:

strip -g fil.o

  • För att ta bort en specifik sektion från en objektfil:

strip -R .comment fil.o

  • För att kassera alla lokala symboler:

strip -x fil.o

Skillnader mellan macOS och Linux

Det finns några skillnader att tänka på när man använder `strip` på macOS jämfört med Linux:

Tillgänglighet: `strip`-kommandot är tillgängligt på både macOS och Linux som en del av GNU Binutils-paketet på Linux och som en del av Xcode Developer Tools på macOS. Alternativ: De flesta alternativ som finns på `strip` är tillgängliga på både macOS och Linux, men det rekommenderas att konsultera `man`-sidan på respektive plattform för att bekräfta tillgängliga alternativ och eventuella skillnader.

Exempel på att använda `strip` på macOS:

  • För att ta bort alla symboler från en objektfil:

strip -s fil.o

Exempel på att installera `strip` på macOS med Xcode Developer Tools:

  • Installera Xcode Developer Tools om det inte redan är installerat:

xcode-select --install

Det är alltid bra att konsultera `man`-sidan för `strip` på din specifika plattform för att se vilka alternativ och funktioner som är tillgängliga och hur de används.

Felsökning

Om du får ett felmeddelande när du använder `strip`, kontrollera följande:

  • Att du använder rätt syntax och alternativ för ditt specifika kommando.
  • Att objektfilen du försöker behandla existerar och är tillgänglig.
  • Att du har nödvändiga behörigheter för att ändra objektfilen.

Se även

  • objdump - Visa detaljerad information om objektfiler.
  • readelf - Visa information om ELF-format objektfiler.
  • nm - Visa symboltabellen för objektfiler.

Källor