proc_pid_maps(5) File Formats Manual proc_pid_maps(5)

/proc/pid/maps - Régions de mémoire projetées

/proc/pid/maps
Ce fichier contient les régions de la mémoire actuellement projetées et leurs autorisations d'accès. Consultez mmap(2) pour de plus amples renseignements sur les projections en mémoire.
La permission d’accéder à ce fichier est régie par une vérification PTRACE_MODE_READ_FSCREDS de mode d’accès ptrace. Consulter ptrace(2).
Le format du fichier est :

adresse          droits posit. périph. inœud      chemin
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]

Le champ adresse correspond à l'espace d'adressage dans le processus que la projection occupe. Le champ droits est un ensemble d'autorisations :

r = lecture
w = écriture
x = exécution
s = partage
p = privé (copie lors de l'écriture)

Le champ posit. est la position dans le fichier ou autre. périph. correspond à la paire (majeur:mineur). inœud est l'inœud sur ce périphérique. 0 signifie qu'aucun inœud n'est associé à cette zone mémoire, comme c'est le cas avec BSS (données non initialisées).
Le champ chemin sera normalement le fichier sur lequel s'appuie la projection. Pour les fichiers ELF, faire correspondre le champ chemin est facile en regardant le champ Offset des en-têtes du programme ELF (readelf -l).
Des pseudochemins pratiques supplémentaires existent.
[stack]
La pile du processus initial (aussi connu comme le thread principal).
[stack:tid] (de Linux 3.4 à Linux 4.4)
Une pile de thread (où tid est un identifiant de thread). Cela correspond au chemin /proc/pid/task/tid/. Ce champ a été retiré dans Linux 4.5 puisque fournir cette information pour un processus avec un grand nombre de threads coûte cher.
[vdso]
L'objet virtuel partagé lié dynamiquement. Consulter vdso(7).
[heap]
Le tas du processus.
[anon:nom] (depuis Linux 5.17)
Un mappage nommé privé anonyme. Il est défini avec prctl(2) PR_SET_VMA_ANON_NAME.
[anon_shmem:nom] (depuis Linux 6.2)
Un mappage nommé partagé anonyme. Il est défini avec prctl(2) PR_SET_VMA_ANON_NAME.
Si le champ chemin est vide, c'est un mappage anonyme tel qu’obtenu à l’aide de la fonction mmap(2). Faire correspondre cela à une source de processus est compliqué, sauf en l'exécutant à l'aide de gdb(1), strace(1) ou similaire.
chemin est affiché littéralement sauf pour les caractères de nouvelle ligne qui sont remplacés par une séquence d’échappement octale. En conséquence, il n’est pas possible de savoir si le chemin d’origine contenait un caractère de nouvelle ligne ou la séquence de caractères littérale \012.
Si le mappage est une projection de fichier et que le fichier a été supprimé, la chaîne « (deleted) » est ajouté au chemin. Cela est aussi ambigu.
Sous Linux 2.0, aucun champ n'indique le chemin.

proc(5)

La traduction française de cette page de manuel a été créée par Christophe Blaess https://www.blaess.fr/christophe/, Stéphan Rafin <stephan.rafin@laposte.net>, Thierry Vignaud <tvignaud@mandriva.com>, François Micaux, Alain Portal <aportal@univ-montp2.fr>, Jean-Philippe Guérard <fevrier@tigreraye.org>, Jean-Luc Coulon (f5ibh) <jean-luc.coulon@wanadoo.fr>, Julien Cristau <jcristau@debian.org>, Thomas Huriaux <thomas.huriaux@gmail.com>, Nicolas François <nicolas.francois@centraliens.net>, Florentin Duneau <fduneau@gmail.com>, Simon Paillard <simon.paillard@resel.enst-bretagne.fr>, Denis Barbier <barbier@debian.org>, David Prévot <david@tilapin.org>, Jean-Paul Guillonneau <guillonneau.jeanpaul@free.fr> et Lucien Gentis <lucien.gentis@waika9.com>

Cette traduction est une documentation libre ; veuillez vous reporter à la GNU General Public License version 3 concernant les conditions de copie et de distribution. Il n'y a aucune RESPONSABILITÉ LÉGALE.

Si vous découvrez un bogue dans la traduction de cette page de manuel, veuillez envoyer un message à debian-l10n-french@lists.debian.org.

15 juin 2024 Pages du manuel de Linux 6.9.1