On 08/03/2011 02:12 PM, Ken Werner wrote:
Hi,This patch set add initial support for uwinding remote processes on ARM using libunwind-ptrace. The first three patches rework the ARM code for local unwinding to prepare the libunwind ARM backend for remote unwinding. The fourth patch changes libunwind-ptrace to also look for .debug_frame info in case no matching information was found in the .eh_frame. This could happen if the GCC generates .eh_frame info for some functions only (e.g. only the C code that interacts with C++ code that is likely to throw exceptions). The new behavior matches to what the local unwind code does. The fifth patch adds the last piece to enable remote unwinding by changing _UPTi_find_unwind_table to also look for the ARM specific unwind information. In addition the code that reads the ARM specific unwind information from memory is changed to make use of the accessor routines. Ken Werner (5): Move arm_exidx_entry and arm_exidx_table structs from ex_tables.h into libunwind-arm.h. Change address type from void* to unw_word_t. Rework the lookup of the ARM specific unwind entry for local unwinding Change libunwind-ptrace to also look for .debug_frame if nothing found in .eh_frame. ARM: Initial support for remote unwinding using libunwind-ptrace include/libunwind-arm.h | 5 + include/libunwind-dynamic.h | 3 +- include/tdep-arm/ex_tables.h | 25 +--- include/tdep-arm/libunwind_i.h | 6 +- src/arm/Gex_tables.c | 244 ++++++++++++++-------------- src/arm/Ginit_local.c | 3 - src/arm/Gstep.c | 12 +- src/dwarf/Gfind_proc_info-lsb.c | 41 ++++- src/dwarf/Gparser.c | 5 + src/ptrace/_UPT_create.c | 5 + src/ptrace/_UPT_find_proc_info.c | 341 ++++++++++++++++++++++---------------- src/ptrace/_UPT_internal.h | 16 +- 12 files changed, 396 insertions(+), 310 deletions(-) Regards Ken
As usual the changes can be pulled from: git://git.linaro.org/people/kwerner/libunwind.git Thanks, Ken _______________________________________________ Libunwind-devel mailing list [email protected] https://lists.nongnu.org/mailman/listinfo/libunwind-devel
