[Ltrace-devel] [RFC] add xtensa architecture support to ltrace

Max Filippov jcmvbkbc at gmail.com
Tue Jun 17 09:41:28 UTC 2014


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




More information about the Ltrace-devel mailing list