mirror of https://gitlab.com/QEF/q-e.git
33 lines
573 B
C
33 lines
573 B
C
/*
|
|
Print the stack trace
|
|
*/
|
|
#ifdef __PTRACE
|
|
#include <execinfo.h>
|
|
#include <stdlib.h>
|
|
#endif
|
|
#include <stdio.h>
|
|
|
|
void ptrace_( )
|
|
{
|
|
#ifdef __PTRACE
|
|
void *array[12];
|
|
size_t size;
|
|
char **strings;
|
|
size_t i;
|
|
|
|
size = backtrace (array, 12);
|
|
strings = backtrace_symbols (array, size);
|
|
|
|
printf ("Obtained %zd stack frames.\n", size);
|
|
printf ("Use 'addr2line -e /where/is/code.x 0x12345' to get the source line number\n");
|
|
|
|
for (i = 0; i < size; i++)
|
|
printf ("%s\n", strings[i]);
|
|
|
|
free (strings);
|
|
#else
|
|
printf ("No stack trace available.\n");
|
|
#endif
|
|
}
|
|
|