wie kann man die Größe des Objektcodes unter Linux bestimmen, wenn "Größe" die falsche Antwort liefert?

8

Ich möchte genau wissen, wie viel Objektcode von GCC für jede Sammlung von Kompilierungseinheiten generiert wird, aber ich habe ein seltsames Problem, wenn der Befehl "Größe" von binutils nicht das richtige Ergebnis liefert.

Nehmen wir eine C-Datei, die nur diese Funktion enthält:

%Vor%

Wir können es kompilieren und die Größe des Objektcodes mit "size" und "objdump" überprüfen:

%Vor%

Von der objdump-Ausgabe ist klar, dass die Objektcodegröße 4 Bytes beträgt. Die Größe meldet jedoch 52 Byte, was falsch ist.

Von der Verwendung der "-D" -Option nach objdump sieht es aus wie der Ausnahmebehandlungscode und vielleicht werden einige andere Sachen durch "Größe" gemessen und zu der Größe des Codes hinzugefügt, der mir wirklich wichtig ist. Kennt jemand einen relativ einfachen Weg, um Größe zu bekommen, diese Extras zu ignorieren?

    
John Regehr 18.03.2013, 03:12
quelle

1 Antwort

0

Müssen Sie bei size bleiben? Es gibt viele Probleme, die denen ähneln, auf die du gestoßen bist, daher verwende ich normalerweise dieses readelf Snippet:

%Vor%     
yugr 27.10.2017 16:40
quelle

Tags und Links