diff options
-rw-r--r-- | gdb/ChangeLog | 8 | ||||
-rw-r--r-- | gdb/nat/windows-nat.c | 10 | ||||
-rw-r--r-- | gdb/nat/windows-nat.h | 5 | ||||
-rw-r--r-- | gdb/windows-nat.c | 11 | ||||
-rw-r--r-- | gdbserver/ChangeLog | 5 | ||||
-rw-r--r-- | gdbserver/win32-low.cc | 6 |
6 files changed, 31 insertions, 14 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 738c6c2d779..3c3ae28dd85 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,5 +1,13 @@ 2020-04-08 Tom Tromey <tromey@adacore.com> + * windows-nat.c (wait_for_debug_event): Move to + nat/windows-nat.c. + * nat/windows-nat.h (wait_for_debug_event): Declare. + * nat/windows-nat.c (wait_for_debug_event): Move from + windows-nat.c. No longer static. + +2020-04-08 Tom Tromey <tromey@adacore.com> + * windows-nat.c (get_windows_debug_event): Use fetch_pending_stop. * nat/windows-nat.h (fetch_pending_stop): Declare. diff --git a/gdb/nat/windows-nat.c b/gdb/nat/windows-nat.c index 823471eb4da..bb28e9b13c7 100644 --- a/gdb/nat/windows-nat.c +++ b/gdb/nat/windows-nat.c @@ -385,5 +385,15 @@ continue_last_debug_event (DWORD continue_status, bool debug_events) continue_status); } +/* See nat/windows-nat.h. */ + +BOOL +wait_for_debug_event (DEBUG_EVENT *event, DWORD timeout) +{ + BOOL result = WaitForDebugEvent (event, timeout); + if (result) + last_wait_event = *event; + return result; +} } diff --git a/gdb/nat/windows-nat.h b/gdb/nat/windows-nat.h index 68b72d4bbd2..846fa67f407 100644 --- a/gdb/nat/windows-nat.h +++ b/gdb/nat/windows-nat.h @@ -245,6 +245,11 @@ extern gdb::optional<pending_stop> fetch_pending_stop (bool debug_events); extern BOOL continue_last_debug_event (DWORD continue_status, bool debug_events); +/* A simple wrapper for WaitForDebugEvent that also sets + 'last_wait_event' on success. */ + +extern BOOL wait_for_debug_event (DEBUG_EVENT *event, DWORD timeout); + } #endif diff --git a/gdb/windows-nat.c b/gdb/windows-nat.c index 2ee7a2412a9..cdaca8d0cbf 100644 --- a/gdb/windows-nat.c +++ b/gdb/windows-nat.c @@ -1495,17 +1495,6 @@ ctrl_c_handler (DWORD event_type) return TRUE; } -/* A wrapper for WaitForDebugEvent that sets "last_wait_event" - appropriately. */ -static BOOL -wait_for_debug_event (DEBUG_EVENT *event, DWORD timeout) -{ - BOOL result = WaitForDebugEvent (event, timeout); - if (result) - last_wait_event = *event; - return result; -} - /* Get the next event from the child. Returns a non-zero thread id if the event requires handling by WFI (or whatever). */ diff --git a/gdbserver/ChangeLog b/gdbserver/ChangeLog index 6793795376e..792834077fe 100644 --- a/gdbserver/ChangeLog +++ b/gdbserver/ChangeLog @@ -1,5 +1,10 @@ 2020-04-08 Tom Tromey <tromey@adacore.com> + * win32-low.c (win32_kill, get_child_debug_event): Use + wait_for_debug_event. + +2020-04-08 Tom Tromey <tromey@adacore.com> + * win32-low.c (child_continue): Call continue_last_debug_event. 2020-04-08 Tom Tromey <tromey@adacore.com> diff --git a/gdbserver/win32-low.cc b/gdbserver/win32-low.cc index 33f64700153..d151505e9f8 100644 --- a/gdbserver/win32-low.cc +++ b/gdbserver/win32-low.cc @@ -797,7 +797,7 @@ win32_process_target::kill (process_info *process) { if (!child_continue (DBG_CONTINUE, -1)) break; - if (!WaitForDebugEvent (¤t_event, INFINITE)) + if (!wait_for_debug_event (¤t_event, INFINITE)) break; if (current_event.dwDebugEventCode == EXIT_PROCESS_DEBUG_EVENT) break; @@ -1231,7 +1231,7 @@ get_child_debug_event (DWORD *continue_status, happen is the user will see a spurious breakpoint. */ current_event.dwDebugEventCode = 0; - if (!WaitForDebugEvent (¤t_event, 0)) + if (!wait_for_debug_event (¤t_event, 0)) { OUTMSG2(("no attach events left\n")); fake_breakpoint_event (); @@ -1246,7 +1246,7 @@ get_child_debug_event (DWORD *continue_status, /* Keep the wait time low enough for comfortable remote interruption, but high enough so gdbserver doesn't become a bottleneck. */ - if (!WaitForDebugEvent (¤t_event, 250)) + if (!wait_for_debug_event (¤t_event, 250)) { DWORD e = GetLastError(); |