Hi, this patch adds xtensa architecture support to ltrace.
It's an RFC because currently there's an issue I'm not sure how to deal with: code blocks that correspond to PLT entries on other architectures are only used at most once on xtensa, after initial resolution of imported symbol address importing module calls it directly. I saw similar behaviour in MIPS backend and mostly replicated its arch_symbol_ret handler. However with this approach function calls may be attributed to a wrong library -- the one that did the call first and put a breakpoint to the real function location. I'd appreciate any idea how this can be fixed. Max Filippov (1): xtensa: add xtensa support configure.ac | 2 + proc.c | 2 +- sysdeps/linux-gnu/Makefile.am | 2 +- sysdeps/linux-gnu/xtensa/Makefile.am | 35 ++++ sysdeps/linux-gnu/xtensa/arch.h | 69 +++++++ sysdeps/linux-gnu/xtensa/breakpoint.c | 71 +++++++ sysdeps/linux-gnu/xtensa/plt.c | 192 ++++++++++++++++++ sysdeps/linux-gnu/xtensa/ptrace.h | 21 ++ sysdeps/linux-gnu/xtensa/regs.c | 52 +++++ sysdeps/linux-gnu/xtensa/signalent.h | 52 +++++ sysdeps/linux-gnu/xtensa/syscallent.h | 357 ++++++++++++++++++++++++++++++++++ sysdeps/linux-gnu/xtensa/trace.c | 100 ++++++++++ 12 files changed, 953 insertions(+), 2 deletions(-) create mode 100644 sysdeps/linux-gnu/xtensa/Makefile.am create mode 100644 sysdeps/linux-gnu/xtensa/arch.h create mode 100644 sysdeps/linux-gnu/xtensa/breakpoint.c create mode 100644 sysdeps/linux-gnu/xtensa/plt.c create mode 100644 sysdeps/linux-gnu/xtensa/ptrace.h create mode 100644 sysdeps/linux-gnu/xtensa/regs.c create mode 100644 sysdeps/linux-gnu/xtensa/signalent.h create mode 100644 sysdeps/linux-gnu/xtensa/syscallent.h create mode 100644 sysdeps/linux-gnu/xtensa/trace.c -- 1.8.1.4 _______________________________________________ Ltrace-devel mailing list [email protected] http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/ltrace-devel
