diff options
author | Pedro Alves <palves@redhat.com> | 2009-11-20 19:52:08 +0000 |
---|---|---|
committer | Pedro Alves <palves@redhat.com> | 2009-11-20 19:52:08 +0000 |
commit | ebec9a0f77584145a70e8f5627dd590bae43b580 (patch) | |
tree | dca46151a531abfca9d3c0272c9db6bc7a217c81 /gdb/linux-nat.h | |
parent | 6b04bdb74a44bebb3d4931de23ae39b0315d06b6 (diff) | |
download | gdb-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.h | 12 |
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; |