Zeilennummerinformationen in Ltrace- und Strace -Tools
-
25-10-2019 - |
Frage
Ist es möglich, dass ich die Zeilennummer und den Dateinamen (für mein Programm mit Ltrace/Strace) zusammen mit den Call-/System -Call -Informationen der Bibliothek anzeigen kann.
Z.B:
code section :: ptr = malloc(sizeof(int)*5); (file:code.c, line:21)
Ltrace oder ein anderes Werkzeug: malloc(20) :: code.c::21
Ich habe alle Optionen von Ltrace/Strace ausprobiert, kann aber keinen Weg finden, um diese Informationen zu erhalten.
Wenn nicht durch ltrace/strace möglich, haben wir eine parallele Tooloption für GNU/Linux?
Lösung
Möglicherweise können Sie die verwenden -i
Option (Ausgabe des Befehlszeigers zum Zeitpunkt des Anrufs) in strace
und ltrace
, kombiniert mit addr2line
So beheben die Anrufe an Codezeilen.
Andere Tipps
Nein, es ist nicht möglich. Warum benutzt du GDB nicht zu diesem Zweck?
Wenn Sie die Anwendung mit GCC -Flaggen zusammenstellen, um Debugger -Informationen in Ihr Programm zu erhalten, und dann Ihr Programm mit GDB oder gleichwertigem Frontend ausführen (DDD oder ähnliches)
Hier ist ein schnelles GDB -Handbuch, mit dem Sie ein wenig helfen können.http://www.cs.cmu.edu/~gilpin/tutorial/
Sie können Strace-Plus verwenden, das Stapelspuren sammelt, die jedem Systemaufruf zugeordnet sind.http://code.google.com/p/strace-plus/