Spurious "dll not found" error messages on x64-windows.
authorJoel Brobecker <brobecker@gnat.com>
Fri, 12 Feb 2010 04:55:15 +0000 (04:55 +0000)
committerJoel Brobecker <brobecker@gnat.com>
Fri, 12 Feb 2010 04:55:15 +0000 (04:55 +0000)
        * windows-nat.c: Add include of complaints.h.
        (handle_unload_dll): Change dll-not-found error into a complaint.

gdb/ChangeLog
gdb/windows-nat.c

index 8bb2b4967bff67dec82c817ad55b08470be1a1e8..f2df5df10b41eee5984f4dec337abdfad96998e2 100644 (file)
@@ -1,3 +1,9 @@
+2010-02-12  Joel Brobecker  <brobecker@adacore.com>
+
+       Spurious "dll not found" error messages on x64-windows.
+       * windows-nat.c: Add include of complaints.h.
+       (handle_unload_dll): Change dll-not-found error into a complaint.
+
 2010-02-12  Pedro Alves  <pedro@codesourcery.com>
 
        * breakpoint.c (allocate_bp_location): Use bp_loc_other for
index 2740366a8b03367c2ef22cfc73c1689a7d6bce74..9ac2b2443ff00bd177c5a8f01f73ed36daf405e8 100644 (file)
@@ -64,6 +64,7 @@
 #include "windows-tdep.h"
 #include "windows-nat.h"
 #include "i386-nat.h"
+#include "complaints.h"
 
 #define AdjustTokenPrivileges          dyn_AdjustTokenPrivileges
 #define DebugActiveProcessStop         dyn_DebugActiveProcessStop
@@ -783,8 +784,15 @@ handle_unload_dll (void *dummy)
        return 1;
       }
 
-  error (_("Error: dll starting at %s not found."),
-          host_address_to_string (lpBaseOfDll));
+  /* We did not find any DLL that was previously loaded at this address,
+     so register a complaint.  We do not report an error, because we have
+     observed that this may be happening under some circumstances.  For
+     instance, running 32bit applications on x64 Windows causes us to receive
+     4 mysterious UNLOAD_DLL_DEBUG_EVENTs during the startup phase (these
+     events are apparently caused by the WOW layer, the interface between
+     32bit and 64bit worlds).  */
+  complaint (&symfile_complaints, _("dll starting at %s not found."),
+            host_address_to_string (lpBaseOfDll));
 
   return 0;
 }