getunwind(2) System Calls Manual getunwind(2)

getunwind - copiază datele de derulare în memoria tampon a apelantului

Biblioteca C standard (libc, -lc)

#include <linux/unwind.h>
#include <sys/syscall.h>      /* Definition of SYS_* constants */
#include <unistd.h>
[[depreciat]] long syscall(SYS_getunwind, void buf[.buf_size],
                            size_t buf_size);

Notă: acest apel de sistem este învechit.

Apelul de sistem getunwind(), specific IA-64, copiază datele de derulare a cadrului de apel al nucleului în memoria tampon indicată de buf și returnează dimensiunea datelor de derulare; aceste date descriu pagina de poartă (codul nucleului care este cartografiat în spațiul utilizatorului).

Dimensiunea memoriei tampon buf este specificată în buf_size. Datele sunt copiate numai dacă buf_size este mai mare sau egală cu dimensiunea datelor de derulare și dacă buf nu este NULL; în caz contrar, nu se copiază date, iar apelul reușește, returnând dimensiunea care ar fi necesară pentru a stoca datele de derulare.

Prima parte a datelor de derulare conține un tabel de derulare. Restul conține informațiile de derulare asociate, fără o anumită ordine. Tabelul de derulare conține intrări de următoarea formă:


u64 start;      (adresa pe 64 de biți a începutului funcției)
u64 end;        (adresa pe 64 de biți a sfârșitului funcției)
u64 info;       (poziția relativă din memoria tampon pentru informațiile de derulare)

O intrare a cărei valoare start este zero indică sfârșitul tabelului. Pentru mai multe informații despre format, consultați manualul IA-64 Software Conventions and Runtime Architecture.

În caz de succes, getunwind() returnează dimensiunea datelor de derulare. În caz de eroare, se returnează -1, iar errno este configurată pentru a indica eroarea.

getunwind() eșuează cu eroarea EFAULT dacă informațiile de derulare nu pot fi stocate în spațiul specificat de buf.

Linux pe IA-64.

Linux 2.4.

Acest apel de sistem a fost depreciat (eliminat). Modalitatea modernă de a obține datele de derulare ale nucleului este prin intermediul vdso(7).

getauxval(3)

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 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.

2 mai 2024 Pagini de manual de Linux 6.8