Tools zum Anzeigen / Bearbeiten des User Space-Speichers laufender Prozesse?

7

Gibt es Tools zum Anzeigen / Bearbeiten des User Space-Speichers laufender Prozesse unter Linux?

Es wäre ein großartiges Lernwerkzeug.

Olivier Lalonde
quelle

Antworten:

5

Der Speicher eines Prozesses ist als Datei verfügbar, /proc/12345/memwobei 12345 die Prozess-ID ist. Sie werden jedoch noch eine Weile nichts direkt daraus lernen können. Das erste, was Sie herausfinden müssen, ist, welche Teile zugeordnet sind. Diese Informationen sind in /proc/12345/mapsund verfügbar /proc/12345/smaps. Einträge in /procsind in der Kerneldokumentation unter dokumentiert Documentation/filesystems/proc.txt. Der lsofBefehl gibt Informationen zu Dateien, die der Prozess dem Speicher zugeordnet hat, besser lesbar.

Es kann lehrreicher sein, den laufenden Prozess mit einem Debugger zu betrachten. Der übliche Debugger unter Linux ist Gdb . Gdb hat eine einfache Kommandozeilenschnittstelle; DDD und Emacs bieten benutzerfreundlichere Schnittstellen. Die besten Ergebnisse erzielen Sie, wenn Sie sich ein Programm ansehen, das noch Debugging-Symbole enthält und dessen Quelle verfügbar ist (dh ein Programm, mit dem Sie gerade kompiliert -ghaben und das Sie nicht entfernt haben).

Sie sollten auch wissen, stracewie Sie die Systemaufrufe überwachen, die ein Prozess ausführt, und ltrace(einige) Bibliotheksaufrufe überwachen.

Gilles 'SO - hör auf böse zu sein'
quelle