GETUNWIND - Linux手册页
时间:2019-08-20 17:58:52 来源:igfitidea点击:
Linux程序员手册 第2部分
更新日期: 2017-09-15
名称
getunwind-将展开数据复制到调用者的缓冲区
语法
#include <syscall.h> #include <linux/unwind.h> long getunwind(void *buf, size_t buf_size);
注意:此系统调用没有glibc包装器。请参阅注释。
说明
注意:此功能已过时。
特定于IA-64的getunwind()系统调用将内核的调用帧展开数据复制到buf指向的缓冲区中,并返回展开数据的大小。此数据描述了登机页面(映射到用户空间的内核代码)。
缓冲区buf的大小在buf_size中指定。仅当buf_size大于或等于展开数据的大小并且buf不为NULL时,才复制数据。否则,将不会复制任何数据,并且调用将成功,并返回存储展开数据所需的大小。
展开数据的第一部分包含一个展开表。其余部分包含关联的展开信息(不按特定顺序)。展开表包含以下形式的条目:
u64 start; (64-bit address of start of function) u64 end; (64-bit address of end of function) u64 info; (BUF-relative offset to unwind info)
起始值为零的条目指示表的结束。有关格式的更多信息,请参见IA-64软件约定和运行时体系结构手册。
返回值
成功时,getunwind()返回展开数据的大小。发生错误时,将返回-1并将errno设置为指示错误。
错误说明
如果无法将展开信息存储在buf指定的空间中,则getunwind()失败并显示错误EFAULT。
版本
从Linux 2.4开始,此系统调用可用。
遵循规范
该系统调用特定于Linux,仅在IA-64体系结构上可用。
另外参见
getauxval(3)
出版信息
这个页面是Linux手册页项目5.08版的一部分。有关项目的说明、有关报告错误的信息以及此页面的最新版本,请访问https://www.kernel.org/doc/man-pages/。