/proc/pid/maps - gemappte Speicherbereiche
- /proc/PID/maps
- Eine Datei mit den derzeit gemappten Speicherbereichen und ihren
Zugriffsrechten. Lesen Sie mmap(2) für weitere Informationen
über Speicher-Mappings.
- Die Zugriffsberechtigungen dieser Datei werden von einer
Ptrace-Zugriffsmodusprüfung PTRACE_MODE_READ_FSCREDS
geregelt; siehe ptrace(2).
- Das Format der Datei lautet:
-
address perms offset dev inode pathname
00400000-00452000 r-xp 00000000 08:02 173521 /usr/bin/dbus-daemon
00651000-00652000 r--p 00051000 08:02 173521 /usr/bin/dbus-daemon
00652000-00655000 rw-p 00052000 08:02 173521 /usr/bin/dbus-daemon
00e03000-00e24000 rw-p 00000000 00:00 0 [heap]
00e24000-011f7000 rw-p 00000000 00:00 0 [heap]
…
35b1800000-35b1820000 r-xp 00000000 08:02 135522 /usr/lib64/ld-2.15.so
35b1a1f000-35b1a20000 r--p 0001f000 08:02 135522 /usr/lib64/ld-2.15.so
35b1a20000-35b1a21000 rw-p 00020000 08:02 135522 /usr/lib64/ld-2.15.so
35b1a21000-35b1a22000 rw-p 00000000 00:00 0
35b1c00000-35b1dac000 r-xp 00000000 08:02 135870 /usr/lib64/libc-2.15.so
35b1dac000-35b1fac000 ---p 001ac000 08:02 135870 /usr/lib64/libc-2.15.so
35b1fac000-35b1fb0000 r--p 001ac000 08:02 135870 /usr/lib64/libc-2.15.so
35b1fb0000-35b1fb2000 rw-p 001b0000 08:02 135870 /usr/lib64/libc-2.15.so
…
f2c6ff8c000-7f2c7078c000 rw-p 00000000 00:00 0 [stack:986]
…
7fffb2c0d000-7fffb2c2e000 rw-p 00000000 00:00 0 [stack]
7fffb2d48000-7fffb2d49000 r-xp 00000000 00:00 0 [vdso]
- Das Feld address ist der Adressraum im Prozess, das das Mapping
belegt. Das Feld perms ist eine Gruppe von Zugriffsrechten.
-
r = read (lesen)
w = write (schreiben)
x = execute (ausführen)
s = shared (gemeinsam benutzt)
p = private (copy on write) (Kopieren bei Schreibzugriffen)
- Das Feld offset ist der Abstand zum Anfang (der Datei oder was auch
immer), dev steht für das Gerät (major:minor) und
Inode ist der Inode auf diesem Gerät. Ist Inode 0, dann ist
keine Datei mit diesem Speicherbereich verbunden, wie z.B. im Falle von
BSS (nicht initialisierte Daten).
- Das Feld pathname wird normalerweise die Datei sein, die dem
Mapping zugrundeliegt. Für ELF-Dateien können Sie dies
einfach mit dem Feld offset koordinieren, indem Sie das Feld Offset
in den ELF-Programm-Headern (readelf -l) anschauen.
- Es gibt zusätzliche, hilfreiche Pseudo-Pfade:
- [stack]
- Der initiale Stack des Prozesses (auch als Haupt-Thread bekannt).
- [stack:TID] (von Linux 3.4 bis Linux 4.4)
- Der Stack eines Prozesses (wobei die TID eine Thread-Kennung ist).
Er entspricht dem Pfad /proc/PID/task/TID/. Dieses
Feld wurde in Linux 4.5 entfernt, da die Bereitstellung dieser
Informationen für einen Prozess mit einer großen Anzahl an
Threads kostspielig ist.
- [vdso]
- Das virtuelle dynamisch-gelinkte Laufzeitobjekt. Siehe
vdso(7).
- [heap]
- Der Prozess-Heap.
- [anon:Name] (seit Linux 5.17)
- Ein benanntes, privates, anonymes Mapping. Mit prctl(2)
PR_SET_VMA_ANON_NAME gesetzt.
- [anon_shmem:Name] (seit Linux 6.2)
- Ein benanntes, gemeinsames, anonymes Mapping. Mit prctl(2)
PR_SET_VMA_ANON_NAME gesetzt.
- Falls das Feld pathname leer ist, ist dies ein anonymes Mapping,
wie es per mmap(2) gewonnen wird. Es gibt keine einfache
Möglichkeit, dies zu einer Prozessquelle
zurückzukoordinieren, außer es durch gdb(1),
strace(1) oder ähnliches auszuführen.
- pathname wird desmaskiert angezeigt, außer für
Zeilenumbrüche, die durch eine oktale Maskiersequenz ersetzt
werden. Daher ist es im Ergebnis nicht möglich zu bestimmen, ob der
ursprüngliche Dateiname ein Zeilenumbruchzeichen oder die
tatsächliche Zeichensequenz \012 enthielt.
- Falls das Mapping Datei-basiert ist und die Datei gelöscht wurde,
wird die Zeichenkette » (deleted)« an den Pfadnamen
angehängt. Beachten Sie, dass auch dies mehrdeutig ist.
- Unter Linux 2.0 gibt es kein Feld, das den Pfadnamen angibt.
ÜBERSETZUNG
Die deutsche Übersetzung dieser Handbuchseite wurde von
Martin Eberhard Schauer <Martin.E.Schauer@gmx.de>, Dr. Tobias
Quathamer <toddy@debian.org>, Chris Leick <c.leick@vollbio.de>,
Erik Pfannenstein <debianignatz@gmx.de> und Helge Kreutzmann
<debian@helgefjell.de> erstellt.
Diese Übersetzung ist Freie Dokumentation; lesen Sie die
GNU General
Public License Version 3 oder neuer bezüglich der
Copyright-Bedingungen. Es wird KEINE HAFTUNG übernommen.
Wenn Sie Fehler in der Übersetzung dieser Handbuchseite
finden, schicken Sie bitte eine E-Mail an die Mailingliste der
Übersetzer:
debian-l10n-german@lists.debian.org.