hotspot/src/os/windows/vm/os_windows.cpp
changeset 7447 32c42d627f41
parent 7397 5b173b4ca846
child 7448 11b630d174d5
--- a/hotspot/src/os/windows/vm/os_windows.cpp	Tue Nov 23 13:22:55 2010 -0800
+++ b/hotspot/src/os/windows/vm/os_windows.cpp	Sat Dec 11 13:20:56 2010 -0500
@@ -63,6 +63,7 @@
 #include "services/attachListener.hpp"
 #include "services/runtimeService.hpp"
 #include "thread_windows.inline.hpp"
+#include "utilities/decoder.hpp"
 #include "utilities/defaultStream.hpp"
 #include "utilities/events.hpp"
 #include "utilities/growableArray.hpp"
@@ -1369,12 +1370,11 @@
 
 bool os::dll_address_to_function_name(address addr, char *buf,
                                       int buflen, int *offset) {
-  // Unimplemented on Windows - in order to use SymGetSymFromAddr(),
-  // we need to initialize imagehlp/dbghelp, then load symbol table
-  // for every module. That's too much work to do after a fatal error.
-  // For an example on how to implement this function, see 1.4.2.
-  if (offset)  *offset  = -1;
-  if (buf) buf[0] = '\0';
+  if (Decoder::decode(addr, buf, buflen, offset) == Decoder::no_error) {
+    return true;
+  }
+  if (offset != NULL)  *offset  = -1;
+  if (buf != NULL) buf[0] = '\0';
   return false;
 }