History log of /external/ltrace/sysdeps/linux-gnu/ppc/arch.h
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
a0093ca43cf40d7e5f6cebeb64156062d2de46d9 10-Jan-2014 Petr Machata <pmachata@redhat.com> Don't crash untraced calls via PLT in prelinked PPC64 binaries

In prelinked binaries, ltrace has to unprelinks PLT slots in order to
catch calls done through PLT. This makes the calls done through these
slots invalid, because the special first PLT slot is not initialized,
and dynamic linker SIGSEGVs because of this. Ltrace relies on
arranging breakpoints such that the dynamic linker is not actually
entered, and moves PC around itself to simulate the effects of a call
through PLT.

Originally, arch_elf_add_plt_entry was called only for symbols that
were actually traced. Later this was changed and it's now called for
all PLT entries, and the resulting candidate list is filtered
afterwards. This gives backends a chance to rename the symbol, as is
useful with IRELATIVE PLT calls, where symbol name may not be
available at all. But the PPC backend was never updated to reflect
this, and unresolved all symbols for which arch_elf_add_plt_entry was
called, thus rendering _all_ PLT slots invalid, even those that
weren't later procted by breakpoints. Thus calls done through any
untraced slots failed.

This patch fixes this problem by deferring the unprelinking of PLT
slots into the on_install hook of breakpoints.
/external/ltrace/sysdeps/linux-gnu/ppc/arch.h
fa844db00b61b9f61c9ae8c6f4165aa5fff3a5d7 05-Nov-2013 Petr Machata <pmachata@redhat.com> Full support of IFUNC tracing on PPC32
/external/ltrace/sysdeps/linux-gnu/ppc/arch.h
73b85aadbf377541ac336914e5ff8ec521226a97 30-Oct-2013 Petr Machata <pmachata@redhat.com> Support tracing P_PPC64_JMP_IREL slots
/external/ltrace/sysdeps/linux-gnu/ppc/arch.h
693dfad9c1b121cf079a3082866daa2225df1797 14-Jan-2013 Petr Machata <pmachata@redhat.com> Rename atomic singlestep to software singlestep

- The old name came from PPC implementation, where the feature was used for
skipping atomic instructions. But this is more useful, was reused for
fully software singlestepping on MIPS, and will be similarly used for ARM.
So rename the interface, and make the prototype more explicit.
- Also document the method in backend.h.
- And convert several void*'s to arch_addr_t's while there.
/external/ltrace/sysdeps/linux-gnu/ppc/arch.h
7e26bd32a1a2269c193a6ef100ed8cd3127f3dc2 07-Nov-2012 Petr Machata <pmachata@redhat.com> Fix detection of resolved-ness for PPC32 BSS PLT slots

This fixes the remaining test suite failures on PPC.
/external/ltrace/sysdeps/linux-gnu/ppc/arch.h
d57c9f8a8515781d687ce57eadc371038cd01526 03-Sep-2012 Petr Machata <pmachata@redhat.com> Remove remnants of PLT_REINITIALISATION_BP

This was only ever used for PowerPC, which doesn't need it anymore.
/external/ltrace/sysdeps/linux-gnu/ppc/arch.h
af9e30ec852a24f52a36775154ff79cc4be0193d 17-May-2012 Petr Machata <pmachata@redhat.com> Implement arch_type_sizeof and arch_type_alignof for PPC back end
/external/ltrace/sysdeps/linux-gnu/ppc/arch.h
54737daf1c51ec826fcabc8189a7ff891f29d59b 05-May-2012 Petr Machata <pmachata@redhat.com> First stab at fetch interface for PPC

This doesn't support passing structures by value and returning structures
is partially broken.
/external/ltrace/sysdeps/linux-gnu/ppc/arch.h
d5285b23e7e515ccb6afdb82fae32a608bb28a2f 09-Jan-2012 Petr Machata <pmachata@redhat.com> Declare endianess in arch.h of each architecture
/external/ltrace/sysdeps/linux-gnu/ppc/arch.h
b1492dfaca6882fa0798b549e0557c7dec6b7e9c 30-Apr-2012 Petr Machata <pmachata@redhat.com> Split arch_translate_address into this and arch_translate_address_dyn

The former is called when ltelf is available. The latter in dynamic context
when ltelf is not necessary anymore (or if the data is necessary, it will
have been copied out to struct library).
/external/ltrace/sysdeps/linux-gnu/ppc/arch.h
585f60f7b171a391fbd5149f3d397d192168a67c 17-Apr-2012 Petr Machata <pmachata@redhat.com> Rename PPC symbol states to reflect that they are used for PPC32 as well
/external/ltrace/sysdeps/linux-gnu/ppc/arch.h
d95733284377c0b186ba0c81a1158edc2b913e45 17-Apr-2012 Petr Machata <pmachata@redhat.com> Re-enable breakpoints for PPC32 BSS unprelinked case

Unfortunately in this case, the dynamic linker additionally overwrites
the PLT entry on first call. We will have to handle this similarly to
what we do for PPC64 unprelinked stripped case.
/external/ltrace/sysdeps/linux-gnu/ppc/arch.h
fbd9742d03154ca842eeae8f6a32e35c1e3c8326 16-Apr-2012 Petr Machata <pmachata@redhat.com> Fix nits in linux-ppc back end
/external/ltrace/sysdeps/linux-gnu/ppc/arch.h
6b314183200b1462ef4aad6e04fda72f3f6b0d87 15-Apr-2012 Petr Machata <pmachata@redhat.com> Improve tracing speed in PPC64 unprelinked stripped case

After we learn where the after-update instruction is, we install breakpoint
and use that as a door-stop instead of singlestepping all the way. This
improves the tracing speed of a synthetic test case that doesn't does many
one-off library calls by a factor of 25x.
/external/ltrace/sysdeps/linux-gnu/ppc/arch.h
abfe118271cd45581f33f71b0cf0fddc3a2e1b05 15-Apr-2012 Petr Machata <pmachata@redhat.com> Nits in PPC back end
/external/ltrace/sysdeps/linux-gnu/ppc/arch.h
24c6e9daa8d89e13c19fc3f9a475ba7913d7d9c8 15-Apr-2012 Petr Machata <pmachata@redhat.com> Add arch_library_symbol arch hooks, call properly
/external/ltrace/sysdeps/linux-gnu/ppc/arch.h
1b4c76e739f36a01ca4cc07a1df5aa5e970279e6 06-Apr-2012 Petr Machata <pmachata@redhat.com> Fix a commentary nit
/external/ltrace/sysdeps/linux-gnu/ppc/arch.h
c67a6e62bc7e95f7f181a51c5b314ef10a6e231e 28-Mar-2012 Petr Machata <pmachata@redhat.com> Add missing implementations of default callback
/external/ltrace/sysdeps/linux-gnu/ppc/arch.h
58b2d0fd5deed5f33fbd47a6b6e5c109f43908b5 28-Mar-2012 Petr Machata <pmachata@redhat.com> Somewhat working tracing of stripped unprelinked PPC64 binaries

- this seems like it shoud work, and indeed it does, mostly. But after the
stopping handler is uninstalled, we get series of apparent singlestep
events, even though we just call PTRACE_SYSCALL time after time. If
there is a kernel bug, we may need to employ some sort of code reading
after all.
/external/ltrace/sysdeps/linux-gnu/ppc/arch.h
b64b5c7b6f4a368ccaf60507090192845221a3be 27-Mar-2012 Petr Machata <pmachata@redhat.com> Support tracing prelinked stripped PPC64 binaries

- distinguish stub breakpoints from unresolved PLT breakpoints. The latter
have special on_continue handler that just moves IP
- unprelinked stripped case not supported yet
/external/ltrace/sysdeps/linux-gnu/ppc/arch.h
50b96039ebfc60825bb7afb8ab8f56bb87aeb67b 24-Mar-2012 Petr Machata <pmachata@redhat.com> Make MIPS and PPC arch.h into full-fledged include file, glue in sysdep.h
/external/ltrace/sysdeps/linux-gnu/ppc/arch.h
644d669f96c0fe261fe938cecda41938e804c7d9 24-Mar-2012 Petr Machata <pmachata@redhat.com> Drop recently introduced arch_elf_dynamic_tag
/external/ltrace/sysdeps/linux-gnu/ppc/arch.h
4e2073f64f9db2974d89064dcdc49b2ed7aa9006 21-Mar-2012 Petr Machata <pmachata@redhat.com> Support tracing PPC32 processes with both BSS and secure PLTs

- only entry breakpoint is realized at the beginning
- when it's hit, it's deleted, and all enabled breakpoints are realized
- all PLTs are LS_TOPLT_EXEC. The difference is in the way the PLT entry
address is computed
/external/ltrace/sysdeps/linux-gnu/ppc/arch.h
e67635d6dcecb0f44448a5329d69fd0de74ebaba 21-Mar-2012 Petr Machata <pmachata@redhat.com> Move arch-specific bits from ltrace-elf.c to PPC and MIPS back ends
/external/ltrace/sysdeps/linux-gnu/ppc/arch.h
a266acb9c3bbde884a32268f164de62d03aa04d0 12-Apr-2012 Petr Machata <pmachata@redhat.com> Add code for stepping over atomic instruction sequence on PPC
/external/ltrace/sysdeps/linux-gnu/ppc/arch.h
55c5feba87bbb8d9190a71ec5ddc38380a384bf7 12-Mar-2008 Luis Machado <luisgpm@br.ibm.com> PPC argument handling improvements

* sysdeps/linux-gnu/ppc/trace.c (arch_umovelong): New function.
* sysdeps/linux-gnu/ppc/regs.c (get_instruction): New function.
(get_count_register): New function.
* sysdeps/linux-gnu/ppc/arch.h (ARCH_HAVE_UMOVELONG): New define.
* sysdeps/linux-gnu/trace.c (umovelong): Create arch-specific
variant.
* ltrace.h (umovelong): Change prototype.
* process_event.c (process_breakpoint): Handle specifics of ppc3
* display_args.c: Call umovelong with info parameter.
/external/ltrace/sysdeps/linux-gnu/ppc/arch.h
b3f8fef12fccb0914b7b28725f42192c279d31c9 30-Nov-2006 Petr Machata <pmachata@redhat.com> Fix .opd handling on IA64, few cleanups.
/external/ltrace/sysdeps/linux-gnu/ppc/arch.h
7003feea8035a3c4ee661dc2556d158e9ba41d39 18-Jul-2006 Petr Machata <pmachata@redhat.com> Compile-time fixes for ppc32.
/external/ltrace/sysdeps/linux-gnu/ppc/arch.h
76c61f15d7989bf7adffed2e46a44c34a80bd927 14-Jun-2006 Paul Gilliam <pgilliam@us.ibm.com> Added Paul Gilliam's secure PLT patch
/external/ltrace/sysdeps/linux-gnu/ppc/arch.h
be3207721cb07e7d01a81fb3beecd0327201478c 24-Apr-2006 Paul Gilliam <pgilliam@us.ibm.com> Use e_entry if "_start" can't be found on architectures where it is needed
/external/ltrace/sysdeps/linux-gnu/ppc/arch.h
9a2ad351a1c3215dc596ff3e2e3fd4bc24445a6b 20-Feb-2006 Ian Wienand <ianw@ieee.org> Switched to SVN (initial import)
/external/ltrace/sysdeps/linux-gnu/ppc/arch.h
d914a206a11cc1011a45f00674b1e16988fae77f 10-Nov-2004 Juan Cespedes <cespedes@debian.org> Version: 0.3.36

* Fixed "--indent" option
* Got rid of Debian and RedHat specific parts in tarball
/external/ltrace/sysdeps/linux-gnu/ppc/arch.h
5bfb061c4c7cfac6e1882a586cf36c849d95fcea 31-Mar-2002 Juan Cespedes <cespedes@debian.org> Version 0.3.25

* Finally added powerpc support (Anton Blanchard <anton@samba.org>)
/external/ltrace/sysdeps/linux-gnu/ppc/arch.h
f1bfe203f5f1c0e11a614f9d593a68406f5cb47e 27-Mar-2002 Juan Cespedes <cespedes@debian.org> Version 0.3.24

* Fixed 2 minor buffer overflows (closes: Bug#130746)
* Obey --prefix, --sysconfdir, --mandir options in configure
* Adding powerpc support (doesn't work yet)
(Anton Blanchard <anton@linuxcare.com.au>)
/external/ltrace/sysdeps/linux-gnu/ppc/arch.h