Ich versuche, eine Anwendung unter Ubuntu zu debuggen. Ich muss mir die Versuche anhören, Dateien zu öffnen (auch für Dateien, die nicht existieren).
Process Monitor (früher bekannt als FileMon ) ist unter Windows verfügbar - was befindet sich auf Ubuntus Utility-Gürtel?
Vielen Dank!
Ashley
Es kommt darauf an, was Sie wollen:
Im Großen und Ganzen möchten Sie sich inotify ansehen , um alle Dateizugriffe zu sehen, die ein Prozess vornimmt.
In dem kleinen Menü können Sie die Systemaufrufe beobachten, die ein bestimmter Prozess durchführt. Strace ist ziemlich genial. Sie können beispielsweise die Aufrufe eines Prozesses nachverfolgen, um sie zu öffnen
strace -f -eopen $cmd
. Die Manpage enthält natürlich alle Details zur Syntax.quelle
strace
Vor einer Startanwendung ist gut zu beobachten, was die App macht.lsof
ist schön zu sehen, welche Dateien eine bereits laufende App verwendet.Übrigens:
lsof -ni:22
Zeigt an, welcher Prozess Port 22 verwendet.quelle
SGI hat ein Tool, das Sie vielleicht ausprobieren möchten: http://oss.sgi.com/projects/fam/
quelle
Hier ist ein Beispiel für die Verwendung von strace zum Verfolgen von Dateiänderungen:
strace -f -e trace=file -p7546 -o /tmp/outputfile
-f
stellt sicher, dass Ereignisse von untergeordneten Prozessen erfasst werden.-e trace=file
sagt , dass wir dateibezogenen syscalls (zB erfassen solltestat
,open
,futex
etc.)-p
wird die Prozess - ID (abgerufen ausps -aux
oder mit anderen Mitteln)-o
spezifiziert die Ausgabedatei (es kann eine Menge Daten und Sie könnten stattdessen verwenden grep als Filter.quelle
Versuchen Sie es mit sysdig . Beispielsweise:
quelle
Dies ruft Mortadelo um Hilfe. http://gitorious.org/mortadelo
quelle
Dies ist alt, aber ich denke, es ist eine gute Idee, es für die heutige Realität zu aktualisieren.
Für das Debuggen nur eines Prozesses und ihrer Kinder ist Strace immer noch der beste Weg. Es kann problemlos alle Dateizugriffe anzeigen, auch auf fehlende Dateien.
Für das generische System-Debugging kann die Audit-Funktion im Kernel dies und ist die empfohlene Methode. Es ist kein Patch für die neuesten Kernel erforderlich, nur das Audit-Paket ist installiert
Hier ist eine einfache Benutzeroberfläche:
audit-gui
Dies repliziert den Windows - Filemon und überwacht den Dateizugriff auf alle Bereiche, Prozesse usw
Überprüfen Sie auch diesen Beitrag
quelle
Das hat bei mir gut funktioniert (Linux Mint 19.1):
sudo lsof 2>&1 | grep programnamehere
2>&1
Ich bin mir nicht sicher, warum es gebraucht wurde, aber es wurde nicht gefiltert, es sei denn, ich habe es benutzt.quelle