2009-09-11 6 views

Antwort

25

Vom (Mac OS X, aber andere sind ähnlich) man page:

Streifen entfernt oder modifiziert den Editor mit dem Ausgang des der Assembler und Link angebracht Symboltabelle. Dies ist nützlich, um Speicherplatz zu sparen, nachdem ein Programm debuggt wurde und um dynamisch gebundene Symbole zu begrenzen.

Notiere die etwas über „nachdem ein Programm ausgetestet wurde“, weil das Debuggen einer ausführbaren gestrippt sehr hart ist, in der Tat. Die "limit dynamically bound symbols" ist eine seltenere Verwendung: Sie können einige der Funktionen in einer externen Bibliothek unzugänglich machen, indem Sie die Indexeinträge entfernen, die angeben, wo sich der tatsächliche Code befindet. Dies wird auch in der man-Seite erklärt.

So billig und reichlich wie Festplatte in den meisten Situation ist, würde Sie einfach nicht mehr damit belästigen. Aber Sie möchten es möglicherweise für platzbeschränkte Situation wie eingebettete Geräte, Notfalldisketten, etc.

+21

Solange Sie eine nicht abgestreifte Kopie Ihrer ausführbaren Datei herum, können Sie frei Ihre abgespeckte Version und debuggen gegen die nicht abgestreifte Version, wenn nötig . Dies ist beispielsweise in der Embedded-Entwicklung der Fall: Wenn eine Core-Datei (von einem Kunden, der die Binärdatei ausführt) aus dem Feld eingeht, können Sie die nicht entfernte Binärdatei in gdb laden und anschließend die Core-Datei öffnen. –

+18

Während Festplattenspeicherplatz billig ist, ist die Festplattenleistung nicht. Je kleiner die Binärdateien sind, desto weniger Platten-E/A muss beim Laden der Anwendung/Bibliothek ausgeführt werden. –

+3

Ich werde das bestätigen. Fette Programme bringen meinen respektablen Computer zu einem beklagenswerten Crawl. Programmierer! Klein ist schön! Ein anderer Grund für langsame Ladezeiten sind fragmentierte Bibliotheken. Sie sind fragmentiert, um sie feinkörniger zu machen und unnötiges Laden zu vermeiden. Dies spielt in der Fast-Random-Access-SSD-Ära keine Rolle. – spraff

7

Es entfernt Symbolinformationen aus der Binärdatei. Die Binärdatei enthält einige Informationen, die Symbole (z. B. Funktionsnamen) bestimmten Orten zuordnen. strip entfernt diese.

4

In seiner Standardbetrieb entfernt der Streifen Befehl, um die Symboltabelle und jede Debug-Informationen von einer ausführbares.

From here