You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
82 lines
3.0 KiB
82 lines
3.0 KiB
\documentclass{article} |
|
\usepackage[fancyhdr,pdf]{latex2man} |
|
|
|
\input{common.tex} |
|
|
|
\begin{document} |
|
|
|
\begin{Name}{3}{unw\_get\_proc\_name}{David Mosberger-Tang}{Programming Library}{unw\_get\_proc\_name}unw\_get\_proc\_name -- get name of current procedure |
|
\end{Name} |
|
|
|
\section{Synopsis} |
|
|
|
\File{\#include $<$libunwind.h$>$}\\ |
|
|
|
\Type{int} \Func{unw\_get\_proc\_name}(\Type{unw\_cursor\_t~*}\Var{cp}, \Type{char~*}\Var{bufp}, \Type{size\_t} \Var{len}, \Type{unw\_word\_t~*}\Var{offp});\\ |
|
|
|
\section{Description} |
|
|
|
The \Func{unw\_get\_proc\_name}() routine returns the name of the |
|
procedure that created the stack frame identified by argument |
|
\Var{cp}. The \Var{bufp} argument is a pointer to a character buffer |
|
that is at least \Var{len} bytes long. This buffer is used to return |
|
the name of the procedure. The \Var{offp} argument is a pointer to a |
|
word that is used to return the byte-offset of the instruction-pointer |
|
saved in the stack frame identified by \Var{cp}, relative to the start |
|
of the procedure. For example, if procedure \Func{foo}() starts at |
|
address 0x40003000, then invoking \Func{unw\_get\_proc\_name}() on a |
|
stack frame with an instruction-pointer value of 0x40003080 would |
|
return a value of 0x80 in the word pointed to by \Var{offp} (assuming |
|
the procedure is at least 0x80 bytes long). |
|
|
|
Note that on some platforms there is no reliable way to distinguish |
|
between procedure names and ordinary labels. Furthermore, if symbol |
|
information has been stripped from a program, procedure names may be |
|
completely unavailable or may be limited to those exported via a |
|
dynamic symbol table. In such cases, \Func{unw\_get\_proc\_name}() |
|
may return the name of a label or a preceeding (nearby) procedure. |
|
However, the offset returned through \Var{offp} is always relative to |
|
the returned name, which ensures that the value (address) of the |
|
returned name plus the returned offset will always be equal to the |
|
instruction-pointer of the stack frame identified by \Var{cp}. |
|
|
|
\section{Return Value} |
|
|
|
On successful completion, \Func{unw\_get\_proc\_name}() returns 0. |
|
Otherwise the negative value of one of the error-codes below is |
|
returned. |
|
|
|
\section{Thread and Signal Safety} |
|
|
|
\Func{unw\_get\_proc\_name}() is thread-safe. If cursor \Var{cp} is |
|
in the local address-space, this routine is also safe to use from a |
|
signal handler. |
|
|
|
\section{Errors} |
|
|
|
\begin{Description} |
|
\item[\Const{UNW\_EUNSPEC}] An unspecified error occurred. |
|
\item[\Const{UNW\_ENOINFO}] \Prog{Libunwind} was unable to determine |
|
the name of the procedure. |
|
\item[\Const{UNW\_ENOMEM}] The procedure name is too long to fit |
|
in the buffer provided. A truncated version of the name has been |
|
returned. |
|
\end{Description} |
|
In addition, \Func{unw\_get\_proc\_name}() may return any error |
|
returned by the \Func{access\_mem}() call-back (see |
|
\Func{unw\_create\_addr\_space}(3)). |
|
|
|
\section{See Also} |
|
|
|
\SeeAlso{libunwind(3)}, |
|
\SeeAlso{unw\_get\_proc\_info(3)} |
|
|
|
\section{Author} |
|
|
|
\noindent |
|
David Mosberger-Tang\\ |
|
Email: \Email{dmosberger@gmail.com}\\ |
|
WWW: \URL{http://www.nongnu.org/libunwind/}. |
|
\LatexManEnd |
|
|
|
\end{document}
|
|
|