This is the mail archive of the
gdb-patches@sources.redhat.com
mailing list for the GDB project.
RFA: patch to ia64-linux-nat.c
- From: "J. Johnston" <jjohnstn at redhat dot com>
- To: gdb-patches at sources dot redhat dot com
- Date: Thu, 03 Jul 2003 16:37:36 -0400
- Subject: RFA: patch to ia64-linux-nat.c
- Organization: Red Hat Inc.
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);