
Gibt es Tools zum Anzeigen/Bearbeiten des Benutzerspeichers laufender Prozesse unter Linux?
Es wäre ein großartiges Lernwerkzeug.
Antwort1
Der Speicher eines Prozesses ist als Datei verfügbar, /proc/12345/mem
wobei 12345 die Prozess-ID ist. Sie werden jedoch vorerst noch nichts direkt daraus erfahren können. Als Erstes müssen Sie herausfinden, welche Teile zugeordnet sind; diese Informationen sind in /proc/12345/maps
und verfügbar /proc/12345/smaps
. Einträge in /proc
sind in der Kernel-Dokumentation unter dokumentiert.Documentation/filesystems/proc.txt
. Der lsof
Befehl gibt in besser lesbarer Form Informationen über die Dateien aus, die der Prozess in den Speicher abgebildet hat.
Es kann aufschlussreicher sein, den laufenden Prozess mit einem Debugger zu betrachten. Der übliche Debugger unter Linux istGdb. Gdb hat eine einfache Befehlszeilenschnittstelle;DDDUndEmacsbieten benutzerfreundlichere Schnittstellen. Die besten Ergebnisse erzielen Sie, wenn Sie sich ein Programm ansehen, das noch Debugsymbole enthält und dessen Quellcode verfügbar ist (d. h. ein Programm, das Sie gerade kompiliert haben -g
und das Sie noch nicht entfernt haben).
Sie sollten auch wissen, dass strace
Sie die Systemaufrufe eines Prozesses und ltrace
(einige) Bibliotheksaufrufe beobachten müssen.