ИМЯ

getunwind - копирует раскрученные данные в буфер вызывающего

LIBRARY

Standard C library ( libc, -lc)

СИНТАКСИС

#include <linux/unwind.h>
#include <sys/syscall.h>      /* определения констант SYS_* */
#include <unistd.h>
[[deprecated]] long syscall(SYS_getunwind, void buf[.buf_size],
                            size_t buf_size);

ОПИСАНИЕ

Note: this system call is obsolete.
Специальный системный вызов getunwind() для IA-64 копирует раскрученные данные кадра вызова ядра в буфер, указанный в buf, и возвращает размер раскрученных данных; эти данные описывают шлюзовую страницу (gate page, код ядра, который отображается в адресное пространство пользователя).
Размер буфера buf задаётся в buf_size. Данные копируются только, если значение buf_size больше или равно размеру раскрученных данных и значение buf не равно NULL; в противном случае, данные не копируются и вызов завершается без ошибки, возвращая размер, который необходим для хранения раскрученных данных.
В начале раскрученных данных содержится таблица раскрутки. После неё хранится связанная с раскруткой информация в произвольном порядке. В таблице раскрутки содержатся записи в следующем виде:

u64 start;    (64-битный адрес начала функции)
u64 end;      (64-битный адрес конца функции)
u64 info;     (смещение относительно BUF на раскрученную информацию)

Запись, у которой значение start равно нулю, указывает на конец таблицы. Подробности формата смотрите в руководстве IA-64 Software Conventions and Runtime Architecture.

ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ

При успешном выполнении getunwind() возвращает размер раскрученных данных. При ошибке возвращается -1, а в errno задаётся причина ошибки.

ОШИБКИ

Вызов getunwind() завершается с ошибкой EFAULT, если раскрученную информацию невозможно сохранить в пространство, указанное buf.

ВЕРСИИ

Данный системный вызов доступен в Linux начиная с версии 2.4.

СТАНДАРТЫ

Данный системный вызов есть только в Linux и доступен только на архитектуре IA-64.

ЗАМЕЧАНИЯ

Данный системный вызов устарел. Современным способом получить раскрученные данные ядра является работа через vdso(7).

СМ. ТАКЖЕ

getauxval(3)

ПЕРЕВОД

Русский перевод этой страницы руководства был сделан Azamat Hackimov <[email protected]>, Dmitry Bolkhovskikh <[email protected]>, Vladislav <[email protected]>, Yuri Kozlov <[email protected]> и Иван Павлов <[email protected]>
Этот перевод является бесплатной документацией; прочитайте Стандартную общественную лицензию GNU версии 3 или более позднюю, чтобы узнать об условиях авторского права. Мы не несем НИКАКОЙ ОТВЕТСТВЕННОСТИ.
Если вы обнаружите ошибки в переводе этой страницы руководства, пожалуйста, отправьте электронное письмо на [email protected]

Recommended readings

Pages related to getunwind you should read also: