12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182 |
- \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\_ENOMME}] 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}
|