Linker, Loader und ausführbare Formate

Was geschieht, wenn der Befehl strip auf eine ausführbare Datei angewendet wird?

  1. ADie Maschinenbefehle werden optimiert, sodass die Ausführung schneller wird
  2. BDie ausführbare Datei wird verschlüsselt und ist für andere nicht mehr ausführbar
  3. CSymboltabelle und Debug-Informationen werden entfernt; die Datei wird kleiner, aber Funktionsnamen usw. sind im Debugger schlechter sichtbar
Antwort und Erläuterung anzeigen

Antwort: C. Symboltabelle und Debug-Informationen werden entfernt; die Datei wird kleiner, aber Funktionsnamen usw. sind im Debugger schlechter sichtbar

Ausführbare Dateien können eine Symboltabelle mit den Namen von Funktionen und Variablen sowie Debug-Informationen enthalten, die Befehle den Zeilen des Quellcodes zuordnen. Sie sind für die Ausführung nicht nötig; mit strip entfernt, wird die Datei kleiner. Bei der Fehlersuche sind dann jedoch Funktionsnamen und Zeilennummern nicht mehr sichtbar, weshalb die Informationen vor dem Entfernen teils separat aufbewahrt werden. Für dynamisches Linken benötigte Symbole bleiben erhalten.

Dieses Thema üben Zur Themenseite

Weitere Fragen zu Linker, Loader und ausführbare Formate

  1. Welche Aussage zur Behandlung schwacher Symbole (Weak Symbols) beim Linker ist richtig?
  2. Was ist der Hauptzweck des „Name Mangling“, bei dem der C++-Compiler Symbolnamen durch Anfügen von Informationen wie Argumenttypen an den Funktionsnamen bildet?
  3. Welcher Verwendungszweck der Linux-Funktion dlopen (entspricht LoadLibrary unter Windows) ist am treffendsten?
  4. Wie wird der physische Speicher genutzt, wenn 100 Prozesse dieselbe Shared Library verwenden?
  5. Beim Disassemblieren einer Objektdatei hatte das Sprungziel des Befehls, der die externe Funktion printf aufruft, einen vorläufigen Wert wie 0. Wann wird dieser Wert korrekt eingetragen?

Vergleiche zu diesem Thema