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
|