diff options
Diffstat (limited to 'manual/examples')
-rw-r--r-- | manual/examples/execinfo.c | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/manual/examples/execinfo.c b/manual/examples/execinfo.c new file mode 100644 index 0000000000..5a04901957 --- /dev/null +++ b/manual/examples/execinfo.c @@ -0,0 +1,37 @@ +#include <execinfo.h> +#include <stdio.h> +#include <stdlib.h> + +/* Obtain a backtrace and print it to @code{stdout}. */ +void +print_trace (void) +{ + void *array[10]; + size_t size; + char **strings; + size_t i; + + size = backtrace (array, 10); + strings = backtrace_symbols (array, size); + + printf ("Obtained %zd stack frames.\n", size); + + for (i = 0; i < size; i++) + printf ("%s\n", strings[i]); + + free (strings); +} + +/* A dummy function to make the backtrace more interesting. */ +void +dummy_function (void) +{ + print_trace (); +} + +int +main (void) +{ + dummy_function (); + return 0; +} |