mirror of
https://github.com/tobast/libunwind-eh_elf.git
synced 2024-12-27 05:23:43 +01:00
134 lines
3.1 KiB
Groff
134 lines
3.1 KiB
Groff
'\" t
|
|
.\" Manual page created with latex2man on Thu Aug 16 09:44:45 MDT 2007
|
|
.\" NOTE: This file is generated, DO NOT EDIT.
|
|
.de Vb
|
|
.ft CW
|
|
.nf
|
|
..
|
|
.de Ve
|
|
.ft R
|
|
|
|
.fi
|
|
..
|
|
.TH "UNW\\_GET\\_PROC\\_INFO\\_BY\\_IP" "3" "16 August 2007" "Programming Library " "Programming Library "
|
|
.SH NAME
|
|
unw_get_proc_info_by_ip
|
|
\-\- get procedure info by IP
|
|
.PP
|
|
.SH SYNOPSIS
|
|
|
|
.PP
|
|
#include <libunwind.h>
|
|
.br
|
|
.PP
|
|
int
|
|
unw_get_proc_info_by_ip(unw_addr_space_t as,
|
|
unw_word_t ip,
|
|
unw_proc_info_t *pip,
|
|
void *arg);
|
|
.br
|
|
.PP
|
|
.SH DESCRIPTION
|
|
|
|
.PP
|
|
The unw_get_proc_info_by_ip()
|
|
routine returns the same
|
|
kind of auxiliary information about a procedure as
|
|
unw_get_proc_info(),
|
|
except that the info is looked up by
|
|
instruction\-pointer (IP) instead of a cursor. This is more flexible
|
|
because it is possible to look up the info for an arbitrary procedure,
|
|
even if it is not part of the current call\-chain. However, since it
|
|
is more flexible, it also tends to run slower (and often much slower)
|
|
than unw_get_proc_info().
|
|
.PP
|
|
The routine expects the followins arguments: as
|
|
is the
|
|
address\-space in which the instruction\-pointer should be looked up.
|
|
For a look\-up in the local address\-space,
|
|
unw_local_addr_space
|
|
can be passed for this argument.
|
|
Argument ip
|
|
is the instruction\-pointer for which the procedure
|
|
info should be looked up and pip
|
|
is a pointer to a structure of
|
|
type unw_proc_info_t
|
|
which is used to return the info.
|
|
Lastly, arg
|
|
is the address\-space argument that should be used
|
|
when accessing the address\-space. It has the same purpose as the
|
|
argument of the same name for unw_init_remote().
|
|
When
|
|
accessing the local address\-space (first argument is
|
|
unw_local_addr_space),
|
|
NULL
|
|
must be passed for this
|
|
argument.
|
|
.PP
|
|
Note that for the purposes of libunwind,
|
|
the code of a
|
|
procedure is assumed to occupy a single, contiguous range of
|
|
addresses. For this reason, it is alwas possible to describe the
|
|
extent of a procedure with the start_ip
|
|
and end_ip
|
|
members. If a single function/routine is split into multiple,
|
|
discontiguous pieces, libunwind
|
|
will treat each piece as a
|
|
separate procedure.
|
|
.PP
|
|
.SH RETURN VALUE
|
|
|
|
.PP
|
|
On successful completion, unw_get_proc_info_by_ip()
|
|
returns 0. Otherwise the negative value of one of the error\-codes
|
|
below is returned.
|
|
.PP
|
|
.SH THREAD AND SIGNAL SAFETY
|
|
|
|
.PP
|
|
unw_get_proc_info()
|
|
is thread\-safe. If the local
|
|
address\-space is passed in argument as,
|
|
this routine is also
|
|
safe to use from a signal handler.
|
|
.PP
|
|
.SH ERRORS
|
|
|
|
.PP
|
|
.TP
|
|
UNW_EUNSPEC
|
|
An unspecified error occurred.
|
|
.TP
|
|
UNW_ENOINFO
|
|
Libunwind
|
|
was unable to locate
|
|
unwind\-info for the procedure.
|
|
.TP
|
|
UNW_EBADVERSION
|
|
The unwind\-info for the procedure has
|
|
version or format that is not understood by libunwind\&.
|
|
.PP
|
|
In addition, unw_get_proc_info()
|
|
may return any error
|
|
returned by the access_mem()
|
|
call\-back (see
|
|
unw_create_addr_space(3)).
|
|
.PP
|
|
.SH SEE ALSO
|
|
|
|
.PP
|
|
libunwind(3),
|
|
unw_create_addr_space(3),
|
|
unw_get_proc_name(3),
|
|
unw_get_proc_info(3),
|
|
unw_init_remote(3)
|
|
.PP
|
|
.SH AUTHOR
|
|
|
|
.PP
|
|
David Mosberger\-Tang
|
|
.br
|
|
Email: \fBdmosberger@gmail.com\fP
|
|
.br
|
|
WWW: \fBhttp://www.nongnu.org/libunwind/\fP\&.
|
|
.\" NOTE: This file is generated, DO NOT EDIT.
|