2014-10-24 3 views
6

Ich habe versucht, das ltrace zu verwenden. Ich habe versucht, den folgenden Befehl zu verwenden, um die Datei bibliothek.so zu profilieren, die von einem Programm sampleapp, ltrace -c -T --library=library.so --output=out.txt ./SampleApp verwendet wird. Aber es zeigt den obigen Fehler. Aber library.so ist ein Debug-Build. Also sollte die Symboltabelle da sein. Ich habe versucht, es mit objdump --source library.so | grep CreateSocket() zu überprüfen. Es gibt Codes zurück, die diese CreateSocket() - Funktion verwenden. Was bedeutet, dass es eine Symboltabelle enthält. Warum dieser Fehler auftritt?ltrace: Konnte nicht .dynsym oder .dynstr in "library.so" finden

Verwandte Beitrag: measure CPU usage per second of a dynamically linked library

Antwort

0

Es hängt davon ab, wie die ausführbare SampleApp erstellt wurde. Sie werden diesen Fehler sehen, wenn er statisch verknüpft war. ltrace funktioniert nur für dynamisch verknüpfte Anwendungen.

Sie können ldd SampleApp ausführen, um die Abhängigkeiten für gemeinsam genutzte Objekte anzuzeigen. Es wurde dynamisch verknüpft und hat eine Abhängigkeit zur libc, die Ausgabe von ldd wird eine Zeile wie diese enthält:

libc.so.6 => /usr/lib/libc.so.6 (0x00007fb24ac53000) 

In diesem Fall können Sie die Option ltrace --library=libc.so.6 verwenden und es sollte funktionieren. --library=libc.so wird jedoch nicht übereinstimmen (Sie erhalten keine Fehlermeldung, aber kein Bibliotheksaufruf wird gefunden).

Wenn statisch gelinkte, ldd SampleApp wird diese Ausgabe stattdessen zeigen:

not a dynamic executable 

Meine Vermutung, dass es wegen der statischen Verknüpfung ist falsch sein könnte. Der wichtige Punkt ist jedoch, dass, wenn ltrace diesen Fehler zeigt, Sie die Diagnose an der ausführbaren Datei (die Binärdatei) und wie es erstellt wurde (Linker-Optionen), nicht in der gemeinsam genutzten Bibliothek zu starten.

Die Frage How does ltrace (library tracing tool) work? hat einige gute Referenzen, um mehr über die Interna des ltrace zu verstehen.

Verwandte Themen