[Ltrace-devel] [PATCH v2 0/8] MIPSEL o32 updates

edgar.iglesias at gmail.com edgar.iglesias at gmail.com
Thu Sep 27 10:07:32 UTC 2012


From: "Edgar E. Iglesias" <edgar at axis.com>

Hi,

This is the series I've been hacking on. There are still issues
with threaded apps.

There are at least two issues:
1. Singlestepping over breakpoints is not really thread safe, IIUC.
2. Waiting until function return until adding breakpoints to
   resolved addresses is to late and not thread safe.

I plan to take a closer look at the watchpoint approach to eliminate nr 2
as Petr M suggested. Any suggestions on howto solve issue nr 1 are also
wellcome. Leaving the breakpoint inplace and emulating the insn might be
a last resort, but quite involved...

I've tested this on a MIPSEL 32R2 o32 and it seems to work fine
for single threaded apps. I've also ran the ltrace testsuite with
the patches on an x86_64.

I'll be happy to fix any comments you might have!

Cheers,
Edgar

Edgar E. Iglesias (8):
  mips: Map the various mips archs as mips/mipsel
  proc: Add missing sym2addr mappings
  Break out the symbol info gathering into a backend call
  Add LS_TOPLT_GOTONLY
  mipsel: Conditionalize GOT indirection in sym2addr
  mipsel: Add mips specific symbol info loading
  mipsel: Singlestep over breakpoints
  mipsel: Update breakpoints when functions return

 backend.h                        |   19 ++++
 configure.ac                     |    2 +
 handle_event.c                   |   11 ++-
 library.h                        |    1 +
 ltrace-elf.c                     |   54 ++++++----
 proc.c                           |   19 +++-
 sysdeps/linux-gnu/mipsel/arch.h  |   20 ++++
 sysdeps/linux-gnu/mipsel/plt.c   |  206 ++++++++++++++++++++++++++++++++++++++
 sysdeps/linux-gnu/mipsel/trace.c |  164 ++++++++++++++++++++++++++++++
 sysdeps/linux-gnu/trace.c        |    2 +-
 10 files changed, 474 insertions(+), 24 deletions(-)

-- 
1.7.8.6




More information about the Ltrace-devel mailing list