mirror of
https://github.com/ianlancetaylor/libbacktrace.git
synced 2026-09-07 12:17:06 +08:00
libbacktrace: handle MOREDATA correctly without debug info
Based on patch from Andi Kleen. * elf.c (elf_nodebug): Handle state->moredata. * fileline.c (backtrace_syminfo_to_full_callback): Remove incorrect comment about MOREDATA. (backtrace_syminfo_to_full_callback_moredata): New function. * internal.h (backtrace_syminfo_to_full_callback_moredata): Declare. * strippedtest.c: New file. * configure.ac: check whether objcopy supports --strip-debug. * Makefile.am (strippedtest_SOURCES): New variable. (strippedtest_CFLAGS, strippedtest_LDFLAGS): Likewise. (strippedtest_LDADD): Likewise. (check_PROGRAMS): Add strippedtest. (MAKETESTS): Add strippedtest_stripped (%_stripped): New rule. * configure, Makefile.in: Regenerate.
This commit is contained in:
@@ -584,8 +584,14 @@ elf_nodebug (struct backtrace_state *state, uintptr_t pc,
|
||||
bdata.full_error_callback = error_callback;
|
||||
bdata.full_data = data;
|
||||
bdata.ret = 0;
|
||||
state->syminfo_fn (state, pc, backtrace_syminfo_to_full_callback,
|
||||
backtrace_syminfo_to_full_error_callback, &bdata);
|
||||
if (state->moredata)
|
||||
state->syminfo_fn (state, pc,
|
||||
backtrace_syminfo_to_full_callback_moredata,
|
||||
backtrace_syminfo_to_full_error_callback,
|
||||
&bdata);
|
||||
else
|
||||
state->syminfo_fn (state, pc, backtrace_syminfo_to_full_callback,
|
||||
backtrace_syminfo_to_full_error_callback, &bdata);
|
||||
return bdata.ret;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user