Dies ist der Befehl ltrace, der beim kostenlosen Hosting-Anbieter OnWorks mit einer unserer zahlreichen kostenlosen Online-Workstations wie Ubuntu Online, Fedora Online, dem Windows-Online-Emulator oder dem MAC OS-Online-Emulator ausgeführt werden kann
PROGRAMM:
NAME/FUNKTION
ltrace – Ein Bibliotheksaufruf-Tracer
ZUSAMMENFASSUNG
ltrace [-e Filter|-L] [-l|--library=Bibliotheksmuster] [-X Filter] [-S] [-b|--no-signale]
[-i] [-w|--where=nr] [-r|-t|-tt|-ttt] [-T] [-F Dateinamen] [-EIN maxelts] [-S strsize]
[-C|--demangle] [-a|--align Überblick] [-n|--indent nr] [-o|--Ausgabe Dateinamen] [-D|--debug
Maske"] [-u Benutzername] [-f] [-p pid] [[--] Befehl [arg ...]]
ltrace -c [-e Filter|-L] [-l|--library=Bibliotheksmuster] [-X Filter] [-S] [-o|--Ausgabe
Dateinamen] [-f] [-p pid] [[--] Befehl [arg ...]]
ltrace -V|--Version
ltrace -h|--hilfe
BESCHREIBUNG
ltrace ist ein Programm, das einfach das angegebene ausführt Befehl bis es ausgeht. Es fängt ab
und zeichnet die dynamischen Bibliotheksaufrufe auf, die vom ausgeführten Prozess aufgerufen werden und die
Signale, die von diesem Prozess empfangen werden. Es kann auch das System abfangen und drucken
Aufrufe, die vom Programm ausgeführt werden.
Seine Verwendung ist sehr ähnlich strace(1).
OPTIONAL
-a, --align Überblick
Rückgabewerte spezifisch ausrichten Überblick (Standardspalte ist 5/8 der Bildschirmbreite).
-A maxelts
Maximale Anzahl zu druckender Array-Elemente, bevor der Rest mit an unterdrückt wird
Auslassungspunkte („...“). Dies begrenzt auch die Anzahl rekursiver Strukturerweiterungen.
-b, --no-signale
Deaktivieren Sie das Drucken der vom verfolgten Prozess empfangenen Signale.
-c Zählt Zeit und Aufrufe für jeden Bibliotheksaufruf und meldet eine Zusammenfassung beim Beenden des Programms.
-C, --demangle
Dekodieren (entschlüsseln) Sie Symbolnamen auf niedriger Ebene in Namen auf Benutzerebene. Neben dem Entfernen
Jedes vom System verwendete anfängliche Unterstrichpräfix erstellt C++-Funktionsnamen
lesbar.
-D, --debug Maske
Debug-Ausgabe von anzeigen ltrace sich. Maske" ist eine Zahl mit innerer Bedeutung
das ist überhaupt nicht genau definiert. Maske" von 77 zeigt alle Debug-Meldungen, die
ist das, was Sie normalerweise brauchen.
-e Filter
Ein qualifizierender Ausdruck, der ändert, welche Bibliotheksaufrufe verfolgt werden sollen. Das Format von
Der Filterausdruck wird im Abschnitt beschrieben FILTER AUSDRÜCKE. Wenn mehr als
Wenn in der Befehlszeile eine Option -e angezeigt wird, werden die Bibliotheksaufrufe angezeigt, die mit einer dieser Optionen übereinstimmen
werden nachverfolgt. Wenn kein -e angegeben ist, @HAUPTSÄCHLICH wird als Standard angenommen.
-f Verfolgen Sie untergeordnete Prozesse so, wie sie als Ergebnis von aktuell verfolgten Prozessen erstellt werden
Gabel(2) oder klonen(2) Systemaufrufe. Der neue Prozess wird sofort angehängt.
-F Dateinamen
Laden Sie eine alternative Konfigurationsdatei. Normalerweise, /etc/ltrace.conf und ~/.ltrace.conf werden wir
gelesen werden (Letzteres nur, wenn es existiert). Verwenden Sie diese Option, um die angegebene Datei zu laden oder
Dateien anstelle dieser beiden Standarddateien. Sehen ltrace.conf(5) Einzelheiten dazu
Syntax der Ltrace-Konfigurationsdateien.
-h, --Hilfe
Zeigt eine Zusammenfassung der Optionen zum Verfolgen und Beenden an.
-i Gibt den Anweisungszeiger zum Zeitpunkt des Bibliotheksaufrufs aus.
-l, --bibliothek Bibliotheksmuster
Zeigt nur Aufrufe von Funktionen an, die von übereinstimmenden Bibliotheken implementiert werden
Bibliotheksmuster. Es können mehrere Bibliotheksmuster mit mehreren Instanzen angegeben werden
dieser Option. Die Syntax von „library_pattern“ wird im Abschnitt beschrieben FILTER
AUSDRÜCKE.
Beachten Sie, dass diese Option zwar Anrufe auswählt, die möglicherweise an die ausgewählte Person weitergeleitet werden
Bibliotheken gibt es keine wirkliche Garantie dafür, dass der Anruf nicht an eine andere Stelle weitergeleitet wird
aufgrund von z. B. LD_PRELOAD oder einfach der Abhängigkeitsreihenfolge. Wenn Sie sichergehen wollen
dass Symbole in einer bestimmten Bibliothek tatsächlich aufgerufen werden, verwenden -x @Bibliotheksmuster stattdessen.
-L Wenn keine Option -e angegeben ist, wird nicht die Standardaktion von angenommen @HAUPTSÄCHLICH.
-n, --indent nr
Trace-Ausgabe einrücken von nr Leerzeichen für jede Ebene der Anrufverschachtelung. Verwenden dieser Option
macht die Visualisierung des Programmablaufs leicht verständlich. Das rückt auch nutzlos ein
Funktionen, die niemals zurückkehren, z. B. Dienstfunktionen zum Auslösen von Ausnahmen
die C++-Laufzeit.
-o, --ausgabe Dateinamen
Schreiben Sie die Trace-Ausgabe in die Datei Dateinamen anstatt zu stderr.
-p pid An den Prozess mit der Prozess-ID anhängen pid und beginnen Sie mit der Verfolgung. Diese Option kann
zusammen mit der Übergabe eines auszuführenden Befehls verwendet werden. Eine Anbringung ist möglich
mehrere Prozesse durch Übergabe von mehr als einer Option -p.
-r Gibt einen relativen Zeitstempel mit jeder Zeile der Ablaufverfolgung aus. Dadurch wird die Uhrzeit erfasst
Unterschied zwischen den Anfängen aufeinanderfolgender Zeilen.
-s strsize
Geben Sie die maximale zu druckende Zeichenfolgengröße an (der Standardwert ist 32).
-S Systemaufrufe sowie Bibliotheksaufrufe anzeigen
-t Stellen Sie jeder Zeile der Ablaufverfolgung die Tageszeit voran.
-tt Bei zweimaliger Angabe enthält die gedruckte Zeit die Mikrosekunden.
-ttt Bei dreimaliger Angabe enthält die gedruckte Zeit die Mikrosekunden und den Anfang
Der Teil wird als Anzahl der Sekunden seit der Epoche gedruckt.
-T Zeigt die in jedem Anruf verbrachte Zeit an. Dadurch wird der Zeitunterschied zwischen aufgezeichnet
den Anfang und das Ende jedes Anrufs.
-u Benutzername
Führen Sie den Befehl mit der Benutzer-ID, der Gruppen-ID und den zusätzlichen Gruppen aus Benutzername. Dies
Die Option ist nur bei der Ausführung als Root nützlich und ermöglicht die korrekte Ausführung von
setuid- und/oder setgid-Binärdateien.
-w, --wo nr
Rückverfolgung anzeigen von nr Stapelrahmen für jede verfolgte Funktion. Diese Option ist aktiviert
Nur wenn die Libunwind-Unterstützung zur Kompilierungszeit aktiviert war.
-x Filter
Ein qualifizierender Ausdruck, der ändert, welcher Symboltabelleneintrag verfolgt werden soll.
Das Format des Filterausdrucks wird im Abschnitt beschrieben FILTER AUSDRÜCKE.
Wenn mehr als eine -x-Option in der Befehlszeile angezeigt wird, werden die Symbole angezeigt, die mit einer beliebigen Option übereinstimmen
von ihnen werden verfolgt. Wenn kein -x angegeben ist, werden keine Einstiegspunkte verfolgt.
-V, --Version
Zeigt die Versionsnummer von ltrace an und beendet es.
FILTER AUSDRÜCKE
Bei einem Filterausdruck handelt es sich um eine Kette glob- oder regexp-basierter Regeln, die zum Auswählen von Symbolen verwendet werden
für die Ablaufverfolgung von Bibliotheken, die der Prozess verwendet. Das meiste davon ist intuitiv, also als
Beispiel: Das Folgende würde Aufrufe von malloc und free verfolgen, mit Ausnahme derjenigen, die von libc ausgeführt werden:
-e malloc+free-@libc.so*
Dies lautet: Trace malloc und free, aber nichts verfolgen, was von libc kommt. Halb-
Formal sieht die Syntax des obigen Beispiels ungefähr so aus:
{[+-][symbol_muster][@Bibliotheksmuster]}
Symbol_muster wird verwendet, um Symbolnamen abzugleichen, Bibliotheksmuster um Bibliotheks-SONAMEs abzugleichen.
Beide sind implizit Globs, können aber auch reguläre Ausdrücke sein (siehe unten). Der Globus
Die Syntax unterstützt Metazeichen * und ? und Charakterklassen, ähnlich wie bei Basic
Unterstützung für Bash-Globs. ^ und $ werden als Anfang bzw. Ende eines Gegebenen erkannt
Namen.
Beide symbol_muster und Bibliotheksmuster muss mit dem gesamten Namen übereinstimmen. Wenn Sie wollen
Wenn nur ein Teil des Namens übereinstimmt, umgeben Sie ihn je nach Bedarf mit einem oder zwei *. Der
Ausnahme ist, wenn das Muster überhaupt nicht erwähnt wird. In diesem Fall ist es so, als ob das
entsprechende Muster waren *. (Damit malloc ist wirklich malloc@* und @libc.* ist wirklich
*@libc.*.)
In Bibliotheken, die keinen expliziten SONAME haben, wird der Basisname für SONAME verwendet. Das hält
auch für die Hauptbinärdatei: /bin/echo hat einen impliziten SONAME von Echo. Darüber hinaus,
spezielles Bibliotheksmuster MAIN Entspricht immer Symbolen in der Hauptbinärdatei und niemals einer Bibliothek
mit tatsächlichem SONAME MAIN (verwenden Sie z.B ^HAUPT or [HAUPTSÄCHLICH dafür).
Wenn das Symbol oder Bibliotheksmuster von Schrägstrichen umgeben ist (/so/), dann ist dies der Fall
stattdessen als regulärer Ausdruck betrachtet. Als Kurzschrift, statt schriftlich /x/@/y/Sie
kann schreiben /x@y/.
Wenn das Bibliotheksmuster mit einem Schrägstrich beginnt, handelt es sich nicht um einen SONAME-Ausdruck, sondern um einen Pfad
Ausdruck und wird mit dem Bibliothekspfadnamen abgeglichen.
In diesem Fall fehlt möglicherweise ein Zeichen in der ersten Regel + wird angenommen. Wenn hingegen die
Die erste Regel hat a - Zeichen, es ist, als ob es eine andere Regel gäbe @ davor, was hat
die Wirkung der Verfolgung des Komplements einer gegebenen Regel.
Die oben genannten Regeln werden verwendet, um den Satz verfolgter Symbole zu erstellen. Jedes Kandidatensymbol ist
durch die Kette der oben genannten Regeln geleitet. Zunächst ist das Symbol nicht markiert. Wenn es
stimmt überein + Regel, es wird markiert, wenn es mit a übereinstimmt - Regel, es wird nicht markiert erneut.
Wenn nach Anwendung aller Regeln das Symbol ist markiert, es wird zurückverfolgt.
Verwenden Sie ltrace online über die Dienste von onworks.net