[PATCH v4 REPOST 0/2] ARM: ptrace: migrate to regsets and enable VFP coredumps

Dave Martin dave.martin at linaro.org
Wed Apr 13 05:56:35 EDT 2011


* Final call for comments on this series.
* 
* The relevant gdb/bfd changes have been implemented by Ulrich
* Weigand and posted upstream, here:
* http://comments.gmane.org/gmane.comp.gnu.binutils/53050


The VFP register state is currently missing from coredumps.

Rather than adding extra arch-specific code to handle this,
migrating to use the regsets framework and implementing a regset
for the VFP registers allows this state to be dumped automatically,
as well as simplifying some aspects of the ptrace implementation.

Dumping of other extension state could also be built
straightforwardly on the same framework, though I don't attempt
to implement that here.

In principle, we should be able to enable the generic
PTRAGE_GETREGSET/PTRAGE_SETREGSET calls too, but strangely
these are #ifdef'd on CONFIG_HAVE_ARCH_TRACEHOOK (which we don't
currently have).  CORE_DUMP_USE_REGSET might be more appropriate.
I'll raise this question separately on lkml.

v2: Move the new note definition to the customary global
    include/linux/elf.h

v3: Explicitly ensure the size of the VFP state dump is 0x104
    bytes, instead just relying on sizeof(struct user_vfp) which
    is larger due to trailing padding.  This avoids transferring
    too much data in the net PTRACE_GET/SETVFPREGS calls, as well
    as matching the coredump contents to the old ptrace payload.

v4: Correct the definition of ARM_VFPREGS_SIZE: there are 32
    *8*-byte registers, not 32 4-byte registers.

    Thanks to Will for spotting that one quickly...
   
Dave Martin (2):
  ARM: ELF: Define new core note type for VFP registers
  ARM: ptrace: Migrate to regsets framework

 arch/arm/include/asm/elf.h    |    1 +
 arch/arm/include/asm/ptrace.h |    6 +
 arch/arm/kernel/ptrace.c      |  348 ++++++++++++++++++++++++++++-------------
 include/linux/elf.h           |    1 +
 4 files changed, 247 insertions(+), 109 deletions(-)




More information about the linux-arm-kernel mailing list