RFA: patch to ia64-linux-nat.c

J. Johnston jjohnstn@redhat.com
Thu Jul 10 19:46:00 GMT 2003


Has anybody had a chance to take a look at this?

-- Jeff J.

J. Johnston wrote:
> The attached patch fixes a problem with potential extraneous breakpoints 
> being found
> by gdb on ia64.
> 
> The ia64_linux_stopped_by_watchpoint() routine is not verifying that it has
> a SIGTRAP signal vs other signals and is only checking the si_code being
> 4.
> 
> The fix merely adds a check that if the signal is not a SIGTRAP, then we
> are not at a hardware watchpoint.
> 
> Ok to commit?
> 
> 2003-07-03  Jeff Johnston  <jjohnstn@redhat.com>
> 
>     * ia64-linux-nat.c (ia64_linux_stopped_by_watchpoint): Verify
>     that we have a SIGTRAP before returning non-zero.
> 
> 
> ------------------------------------------------------------------------
> 
> Index: ia64-linux-nat.c
> ===================================================================
> RCS file: /cvs/src/src/gdb/ia64-linux-nat.c,v
> retrieving revision 1.16
> diff -u -p -r1.16 ia64-linux-nat.c
> --- ia64-linux-nat.c	7 Feb 2003 04:49:34 -0000	1.16
> +++ ia64-linux-nat.c	3 Jul 2003 20:31:26 -0000
> @@ -634,7 +634,8 @@ ia64_linux_stopped_by_watchpoint (ptid_t
>    errno = 0;
>    ptrace (PTRACE_GETSIGINFO, tid, (PTRACE_ARG3_TYPE) 0, &siginfo);
>  
> -  if (errno != 0 || (siginfo.si_code & 0xffff) != 0x0004 /* TRAP_HWBKPT */)
> +  if (errno != 0 || siginfo.si_signo != SIGTRAP || 
> +      (siginfo.si_code & 0xffff) != 0x0004 /* TRAP_HWBKPT */)
>      return 0;
>  
>    psr = read_register_pid (IA64_PSR_REGNUM, ptid);




More information about the Gdb-patches mailing list