59 fprintf (stderr,
"libbacktrace: %s",
msg);
61 fprintf (stderr,
": %s", strerror (errnum));
69 const char *symname, uintptr_t symval,
75 fprintf (pdata->
f,
"0x%lx ???\n\t???:0\n", (
unsigned long) pc);
77 fprintf (pdata->
f,
"0x%lx ???\n\t%s+0x%lx:0\n",
80 (
unsigned long) (pc - symval));
91 if (
function == NULL && filename == NULL)
98 fprintf (pdata->
f,
"0x%lx %s\n\t%s:%d\n",
101 filename == NULL ?
"???" : filename,
int backtrace_syminfo(struct backtrace_state *state, uintptr_t addr, backtrace_syminfo_callback callback, backtrace_error_callback error_callback, void *data)
void backtrace_print(struct backtrace_state *state, int skip, FILE *)
int backtrace_full(struct backtrace_state *state, int skip, backtrace_full_callback callback, backtrace_error_callback error_callback, void *data)
struct backtrace_state * state
static void error_callback(void *data, const char *msg, int errnum)
static int print_callback(void *data, uintptr_t pc, const char *filename, int lineno, const char *function)
static void print_syminfo_callback(void *data, uintptr_t pc, const char *symname, uintptr_t symval, uintptr_t symsize ATTRIBUTE_UNUSED)
Functions to help with cleanup.