aboutsummaryrefslogtreecommitdiff
path: root/gdb/linux-nat.h
diff options
context:
space:
mode:
authorPedro Alves <palves@redhat.com>2009-11-20 19:52:08 +0000
committerPedro Alves <palves@redhat.com>2009-11-20 19:52:08 +0000
commitebec9a0f77584145a70e8f5627dd590bae43b580 (patch)
treedca46151a531abfca9d3c0272c9db6bc7a217c81 /gdb/linux-nat.h
parent6b04bdb74a44bebb3d4931de23ae39b0315d06b6 (diff)
downloadgdb-ebec9a0f77584145a70e8f5627dd590bae43b580.zip
gdb-ebec9a0f77584145a70e8f5627dd590bae43b580.tar.gz
gdb-ebec9a0f77584145a70e8f5627dd590bae43b580.tar.bz2
gdb/
2009-11-20 Jan Kratochvil <jan.kratochvil@redhat.com> Pedro Alves <pedro@codesourcery.com> Fix reordered watchpoints triggered in other threads during all-stop. * linux-nat.c (resume_callback, linux_nat_resume): Clear stopped_by_watchpoint. (save_sigtrap, linux_nat_stopped_by_watchpoint) (linux_nat_stopped_data_address): New. (stop_wait_callback, linux_nat_filter_event): Call save_sigtrap. (linux_nat_add_target): Install linux_nat_stopped_by_watchpoint and linux_nat_stopped_data_address. * linux-nat.h (struct lwp_info): New fields stopped_by_watchpoint, stopped_data_address_p and stopped_data_address. gdb/testsuite/ 2009-11-20 Jan Kratochvil <jan.kratochvil@redhat.com> * gdb.base/watchthreads-reorder.exp, gdb.base/watchthreads-reorder.c: New.
Diffstat (limited to 'gdb/linux-nat.h')
-rw-r--r--gdb/linux-nat.h12
1 files changed, 12 insertions, 0 deletions
diff --git a/gdb/linux-nat.h b/gdb/linux-nat.h
index eae74f3..f2a74e8 100644
--- a/gdb/linux-nat.h
+++ b/gdb/linux-nat.h
@@ -62,6 +62,18 @@ struct lwp_info
be the address of a hardware watchpoint. */
struct siginfo siginfo;
+ /* STOPPED_BY_WATCHPOINT is non-zero if this LWP stopped with a data
+ watchpoint trap. */
+ int stopped_by_watchpoint;
+
+ /* On architectures where it is possible to know the data address of
+ a triggered watchpoint, STOPPED_DATA_ADDRESS_P is non-zero, and
+ STOPPED_DATA_ADDRESS contains such data address. Otherwise,
+ STOPPED_DATA_ADDRESS_P is false, and STOPPED_DATA_ADDRESS is
+ undefined. Only valid if STOPPED_BY_WATCHPOINT is true. */
+ int stopped_data_address_p;
+ CORE_ADDR stopped_data_address;
+
/* Non-zero if we expect a duplicated SIGINT. */
int ignore_sigint;