mirror of
https://github.com/tobast/libunwind-eh_elf.git
synced 2024-12-23 12:03:41 +01:00
82 lines
3 KiB
TeX
82 lines
3 KiB
TeX
\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}
|