[patch 4/5] ppc64: Add definitions for new PTRACE calls

Kumar Gala kumar.gala at freescale.com
Sun Sep 11 03:29:07 EST 2005


We really need further discussion on this.  Book-E has a completely  
different HW debug model which this patch only partially comprehend.   
Is GDB being extended to support branch stepping?

- kumar

On Sep 10, 2005, at 1:01 AM, Anton Blanchard wrote:

> - Add PTRACE_BRANCHSTEP. Like PTRACE_SINGLESTEP but takes an
>   exception at every branch. This might be worth putting in
>   include/linux/ptrace.h if other architectures are interested.
>
> - Add PTRACE_GET_DEBUGREG/PTRACE_SET_DEBUGREG. The definition is
>   as follows:
>
> /*
>  * Get or set a debug register. The first 16 are DABR registers and  
> the
>  * second 16 are IABR registers.
>  */
> #define PTRACE_GET_DEBUGREG    25
> #define PTRACE_SET_DEBUGREG    26
>
>   DABR == data breakpoint and IABR = instruction breakpoint in IBM
>   speak. We could split out the IABR into 2 more ptrace calls but I
>   figured there was no need and 16 DABR registers should be more
>   than enough (POWER4/POWER5 have one).
>
> - Add 2 new SIGTRAP si_codes: TRAP_HWBKPT and TRAP_BRANCH. I couldnt
>   find any standards on either of these so I copied what ia64 is
>   doing. Again this might be better placed in
>   include/asm-generic/siginfo.h
>
> Signed-off-by: Anton Blanchard <anton at samba.org>
> ---
>
> Index: build/include/asm-ppc/ptrace.h
> ===================================================================
> --- build.orig/include/asm-ppc/ptrace.h    2005-09-10  
> 14:26:25.000000000
> +1000
> +++ build/include/asm-ppc/ptrace.h    2005-09-10 14:27:49.000000000
> +1000
> @@ -142,4 +142,13 @@
>  #define PTRACE_GETEVRREGS    20
>  #define PTRACE_SETEVRREGS    21
>
> +#define PTRACE_BRANCHSTEP    22
> +
> +/*
> + * Get or set a debug register. The first 16 are DABR registers  
> and the
> + * second 16 are IABR registers.
> + */
> +#define PTRACE_GET_DEBUGREG    25
> +#define PTRACE_SET_DEBUGREG    26
> +
>  #endif
> Index: build/include/asm-ppc64/ptrace.h
> ===================================================================
> --- build.orig/include/asm-ppc64/ptrace.h    2005-09-10
> 14:28:44.000000000 +1000
> +++ build/include/asm-ppc64/ptrace.h    2005-09-10 14:28:58.000000000
> +1000
> @@ -189,6 +189,15 @@
>  #define PTRACE_SETEVRREGS       21
>  #endif
>
> +#define PTRACE_BRANCHSTEP    22
> +
> +/*
> + * Get or set a debug register. The first 16 are DABR registers  
> and the
> + * second 16 are IABR registers.
> + */
> +#define PTRACE_GET_DEBUGREG    25
> +#define PTRACE_SET_DEBUGREG    26
> +
>  /* Additional PTRACE requests implemented on PowerPC. */
>  #define PPC_PTRACE_GETREGS    0x99    /* Get GPRs 0 - 31 */
>  #define PPC_PTRACE_SETREGS    0x98    /* Set GPRs 0 - 31 */
> Index: build/include/asm-powerpc/siginfo.h
> ===================================================================
> --- build.orig/include/asm-powerpc/siginfo.h    2005-09-10
> 13:29:48.000000000 +1000
> +++ build/include/asm-powerpc/siginfo.h    2005-09-10  
> 13:29:54.000000000
> +1000
> @@ -15,4 +15,12 @@
>
>  #include <asm-generic/siginfo.h>
>
> +/*
> + * SIGTRAP si_codes
> + */
> +#define TRAP_BRANCH    (__SI_FAULT|3)    /* process taken branch  
> trap */
> +#define TRAP_HWBKPT    (__SI_FAULT|4)    /* hardware breakpoint or
> watchpoint */
> +#undef NSIGTRAP
> +#define NSIGTRAP    4
> +
>  #endif    /* _ASM_POWERPC_SIGINFO_H */
>
> --
>
> _______________________________________________
> Linuxppc64-dev mailing list
> Linuxppc64-dev at ozlabs.org
> https://ozlabs.org/mailman/listinfo/linuxppc64-dev
>




More information about the Linuxppc64-dev mailing list