forked from Imagelibrary/binutils-gdb
Do the target-waiting within do_initial_child_stuff on Windows.
This is a preparatory patch that achieves two goals:
. Makes the initial event handling more similar to GDB's;
. Opens the door for implementing post-inititial-handling
operations.
At the moment, this is only done on Windows, where the
post-initial-handling is going to be needed (in the context of
Windows 2012). And because we're close to creating the gdb 7.7
branch, making that change for all platforms is a little more
risk that we'd like. So the change is currently implemented
on Windows.
gdb/gdbserver/ChangeLog:
* target.c (mywait): Set OURSTATUS->KIND to TARGET_WAITKIND_STOPPED
if equal to TARGET_WAITKIND_LOADED.
* win32-low.c (cached_status): New static global.
(win32_wait): Add declaration.
(do_initial_child_stuff): Flush all initial pending debug events
up to the initial breakpoint.
(win32_wait): If CACHED_STATUS was set, return that instead
of doing a real wait. Remove the code resuming the execution
of the inferior after receiving a TARGET_WAITKIND_LOADED event
during the initial phase. Also remove the code changing
OURSTATUS->KIND from TARGET_WAITKIND_LOADED to
TARGET_WAITKIND_STOPPED.
This commit is contained in:
committed by
Joel Brobecker
parent
a75555d13b
commit
4210d83ee6
@@ -82,6 +82,11 @@ mywait (ptid_t ptid, struct target_waitstatus *ourstatus, int options,
|
||||
|
||||
ret = (*the_target->wait) (ptid, ourstatus, options);
|
||||
|
||||
/* We don't expose _LOADED events to gdbserver core. See the
|
||||
`dlls_changed' global. */
|
||||
if (ourstatus->kind == TARGET_WAITKIND_LOADED)
|
||||
ourstatus->kind = TARGET_WAITKIND_STOPPED;
|
||||
|
||||
/* If GDB is connected through TCP/serial, then GDBserver will most
|
||||
probably be running on its own terminal/console, so it's nice to
|
||||
print there why is GDBserver exiting. If however, GDB is
|
||||
|
||||
Reference in New Issue
Block a user