proc_pid_maps(5)

NUME
/proc/pid/maps - regiuni de memorie cartografiate

DESCRIERE

/proc/pid/maps
    Un fișier care conține regiunile de memorie cartografiate în prezent și permisiunile lor de acces. Consultați mmap(2) pentru informații suplimentare despre cartografierea memoriei.

    Permisiunea de a accesa acest fișier este guvernată de o verificare a modului de acces «ptrace» PTRACE_MODE_READ_FSCREDS; a se vedea ptrace(2).

    Formatul fișierului este următorul:

        adresă           permis poziție disp  nod-i       nume-rută
        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]

    Câmpul adresă este spațiul de adrese din proces ocupat de cartografiere. Câmpul permis este un set de permisiuni:

        r = citire
        w = scriere
        x = execuție
        s = partajare
        p = privată (copie la scriere)

    Câmpul poziție este poziția în fișier sau altceva; disp este dispozitivul (major:minor); nod-i este nodul-i pe dispozitivul respectiv. 0 indică faptul că niciun nod-i nu este asociat cu regiunea de memorie, cum ar fi cazul BSS (date neinițializate).

    Câmpul nume-rută va fi de obicei fișierul care conține cartografierea. Pentru fișierele ELF, vă puteți coordona cu ușurință cu câmpul poziție uitându-vă la câmpul Offset din anteturile programului ELF (readelf -l).

    Există pseudo-rute suplimentare utile:

    [stack]
        Stiva procesului inițial (cunoscută și ca firul principal).

    [stack:tid] (de la Linux 3.4 la Linux 4.4)
        Stiva unui fir (unde tid este un ID al firului). Acesta corespunde rutei /proc/pid/task/tid/. Acest câmp a fost eliminat în Linux 4.5, deoarece furnizarea acestor informații pentru un proces cu un număr mare de fire este costisitoare.

    [vdso]
        Obiectul partajat virtual legat dinamic. A se vedea vdso(7).

    [heap]
        Grămada procesului.

    [anon:nume] (începând cu Linux 5.17)
        O cartografiere anonimă privată cu nume. Definită cu prctl(2) PR_SET_VMA_ANON_NAME.

    [anon_shmem:nume] (începând cu Linux 6.2)
        O cartografiere anonimă partajată cu nume. Definită cu prctl(2) PR_SET_VMA_ANON_NAME.

    Dacă câmpul nume-rută este gol, aceasta este o cartografiere anonimă obținută prin mmap(2). Nu există o modalitate ușoară de a corela aceasta cu sursa unui proces, cu excepția rulării acesteia prin gdb(1), strace(1) sau similar.

    nume-rută este afișat neeludat, cu excepția caracterelor de linie nouă, care sunt înlocuite cu o secvență octală de eludare. Ca urmare, nu este posibil să se determine dacă numele de rută original conținea un caracter de linie nouă sau secvența literală de caractere \012.

    Dacă cartografierea este stocată în fișier și fișierul a fost șters, șirul „(deleted)” este adăugat la numele rutei. Rețineți că acest lucru este, de asemenea, ambiguu.

    Sub Linux 2.0, nu există niciun câmp care să indice numele rutei.

CONSULTAȚI ȘI
proc(5)

TRADUCERE
Traducerea în limba română a acestui manual a fost făcută de Remus-Gabriel Chelu <remusgabriel.chelu@disroot.org>

Această traducere este documentație gratuită; citiți Licența publică generală GNU Versiunea 3 (https://www.gnu.org/licenses/gpl-3.0.html) sau o versiune ulterioară cu privire la condiții privind drepturile de autor. NU se asumă NICIO RESPONSABILITATE.

Dacă găsiți erori în traducerea acestui manual, vă rugăm să trimiteți un e-mail la translation-team-ro@lists.sourceforge.net.