nameless LOAD_DLL_DEBUG_EVENT causes ntdll.dll to be missing
authorJoel Brobecker <brobecker@adacore.com>
Thu, 12 Dec 2013 17:53:45 +0000 (12:53 -0500)
committerJoel Brobecker <brobecker@adacore.com>
Fri, 13 Dec 2013 15:42:54 +0000 (16:42 +0100)
commit379a5e2d36e4323702d48aeb794a8e42bf5bff5b
tree3b1fe8bcb2c804eb0420414fbaa1f78d53436d41
parent4210d83ee607bffaf27a235f0475bf1e5ea8266d
nameless LOAD_DLL_DEBUG_EVENT causes ntdll.dll to be missing

This is the gdbserver-equivalent of the change made in GDB to handle
the case, in x64 windows version 2012, where the kernel produces
a LOAD_DLL_DEBUG_EVENT where the name of the associated DLL cannot
be determined at that time, and thus has to be processed later.

The visible symptom is that ntdll.dll is missing from the list of
shared libraries known to be mapped by the inferior, with other
side-effects such as failure to unwind through code provided by
that DLL (such as exception handling routines).

gdb/gdbserver/ChangeLog:

* Makefile.in (safe-ctype.o, lbasename.o): New rules.
* configure.srv: Add safe-ctype.o and lbasename.o to srv_tgtobj
for all targets that use win32-low.c.
* win32-low.c (win32_ensure_ntdll_loaded): New function.
(do_initial_child_stuff): Add call to win32_ensure_ntdll_loaded.
gdb/gdbserver/ChangeLog
gdb/gdbserver/Makefile.in
gdb/gdbserver/configure.srv
gdb/gdbserver/win32-low.c