aboutsummaryrefslogtreecommitdiff
path: root/gdb/gdbserver/win32-low.c
diff options
context:
space:
mode:
authorPedro Alves <palves@redhat.com>2009-07-04 18:13:28 +0000
committerPedro Alves <palves@redhat.com>2009-07-04 18:13:28 +0000
commit912cf4ba32021ba75d11c496e9ffd17bbb15bc64 (patch)
treeed2725b4c7d136096eeca96b791ab0dcb2a79f7d /gdb/gdbserver/win32-low.c
parentdd8f35ac84e9ae2bcd5bc75004b7e5312805843a (diff)
downloadgdb-912cf4ba32021ba75d11c496e9ffd17bbb15bc64.zip
gdb-912cf4ba32021ba75d11c496e9ffd17bbb15bc64.tar.gz
gdb-912cf4ba32021ba75d11c496e9ffd17bbb15bc64.tar.bz2
* win32-i386-low.c (i386_get_thread_context): Handle systems that
don't support CONTEXT_EXTENDED_REGISTERS. (i386_win32_breakpoint, i386_win32_breakpoint_len): New. (the_low_target): Install them. * win32-low.c (get_child_debug_event): Handle WaitForDebugEvent failing with ERROR_PIPE_NOT_CONNECTED.
Diffstat (limited to 'gdb/gdbserver/win32-low.c')
-rw-r--r--gdb/gdbserver/win32-low.c17
1 files changed, 16 insertions, 1 deletions
diff --git a/gdb/gdbserver/win32-low.c b/gdb/gdbserver/win32-low.c
index a1380f6..bcf16b2 100644
--- a/gdb/gdbserver/win32-low.c
+++ b/gdb/gdbserver/win32-low.c
@@ -1407,7 +1407,22 @@ get_child_debug_event (struct target_waitstatus *ourstatus)
interruption, but high enough so gdbserver doesn't become a
bottleneck. */
if (!WaitForDebugEvent (&current_event, 250))
- return 0;
+ {
+ DWORD e = GetLastError();
+
+ if (e == ERROR_PIPE_NOT_CONNECTED)
+ {
+ /* This will happen if the loader fails to succesfully
+ load the application, e.g., if the main executable
+ tries to pull in a non-existing export from a
+ DLL. */
+ ourstatus->kind = TARGET_WAITKIND_EXITED;
+ ourstatus->value.integer = 1;
+ return 1;
+ }
+
+ return 0;
+ }
}
gotevent: