ADC Home > Reference Library > Reference > Mac OS X > Mac OS X Man Pages

 

This document is a Mac OS X manual page. Manual pages are a command-line technology for providing documentation. You can view these manual pages locally using the man(1) command. These manual pages come from many different sources, and thus, have a variety of writing styles.

For more information about the manual page format, see the manual page for manpages(5).



backtrace(3)             BSD Library Functions Manual             backtrace(3)

NAME
     backtrace, backtrace_symbols, backtrace_symbols_fd -- call stack backtrace and display functions

SYNOPSIS
     #include <execinfo.h>

     int
     backtrace(void** array, int size);

     char**
     backtrace_symbols(void* const* array, int size);

     void
     backtrace_symbols_fd(void* const* array, int size, int fd);

DESCRIPTION
     These routines provide a mechanism to examine the current thread's call stack.

     backtrace() writes the function return addresses of the current call stack to the array of pointers
     referenced by array.  At most, size pointers are written.  The number of pointers actually written to
     array is returned.

     backtrace_symbols() attempts to transform a call stack obtained by backtrace() into an array of human-readable humanreadable
     readable strings using dladdr().  The array of strings returned has size elements.  It is allocated
     using malloc() and should be released using free().  There is no need to free the individual strings in
     the array.

     backtrace_symbols_fd() performs the same operation as backtrace_symbols(), but the resulting strings
     are immediately written to the file descriptor fd, and are not returned.

EXAMPLE
         #include <execinfo.h>
         #include <stdio.h>
         ...
         void* callstack[128];
         int i, frames = backtrace(callstack, 128);
         char** strs = backtrace_symbols(callstack, frames);
         for (i = 0; i < frames; ++i) {
             printf("%s\n", strs[i]);
         }
         free(strs);
         ...

HISTORY
     These functions first appeared in Mac OS X 10.5.

SEE ALSO
     dladdr(3), malloc(3)

Mac OS X                       February 15, 2007                      Mac OS X

Did this document help you?
Yes: Tell us what works for you.
It’s good, but: Report typos, inaccuracies, and so forth.
It wasn’t helpful: Tell us what would have helped.