< prev index next >
src/share/vm/utilities/decoder.cpp
Print this page
rev 13549 : 8185712: [windows] Improve native symbol decoder
Reviewed-by: goetz, zgu
@@ -26,14 +26,12 @@
#include "prims/jvm.h"
#include "runtime/os.hpp"
#include "utilities/decoder.hpp"
#include "utilities/vmError.hpp"
-#if defined(_WINDOWS)
- #include "decoder_windows.hpp"
- #include "windbghelp.hpp"
-#elif defined(__APPLE__)
+#ifndef _WINDOWS
+#if defined(__APPLE__)
#include "decoder_machO.hpp"
#elif defined(AIX)
#include "decoder_aix.hpp"
#else
#include "decoder_elf.hpp"
@@ -65,13 +63,11 @@
}
AbstractDecoder* Decoder::create_decoder() {
AbstractDecoder* decoder;
-#if defined(_WINDOWS)
- decoder = new (std::nothrow) WindowsDecoder();
-#elif defined (__APPLE__)
+#if defined (__APPLE__)
decoder = new (std::nothrow)MachODecoder();
#elif defined(AIX)
decoder = new (std::nothrow)AIXDecoder();
#else
decoder = new (std::nothrow)ElfDecoder();
@@ -134,38 +130,14 @@
get_error_handler_instance(): get_shared_instance();
assert(decoder != NULL, "null decoder");
return decoder->demangle(symbol, buf, buflen);
}
-bool Decoder::can_decode_C_frame_in_vm() {
- assert(_shared_decoder_lock != NULL, "Just check");
- bool error_handling_thread = os::current_thread_id() == VMError::first_error_tid;
- MutexLockerEx locker(error_handling_thread ? NULL : _shared_decoder_lock, true);
- AbstractDecoder* decoder = error_handling_thread ?
- get_error_handler_instance(): get_shared_instance();
- assert(decoder != NULL, "null decoder");
- return decoder->can_decode_C_frame_in_vm();
+void Decoder::print_state_on(outputStream* st) {
}
-/*
- * Shutdown shared decoder and replace it with
- * _do_nothing_decoder. Do nothing with error handler
- * instance, since the JVM is going down.
- */
-void Decoder::shutdown() {
- assert(_shared_decoder_lock != NULL, "Just check");
- MutexLockerEx locker(_shared_decoder_lock, true);
-
- if (_shared_decoder != NULL &&
- _shared_decoder != &_do_nothing_decoder) {
- delete _shared_decoder;
- }
-
- _shared_decoder = &_do_nothing_decoder;
+bool Decoder::get_source_info(address pc, char* buf, size_t buflen, int* line) {
+ return false;
}
-void Decoder::print_state_on(outputStream* st) {
-#ifdef _WINDOWS
- WindowsDbgHelp::print_state_on(st);
-#endif
-}
+#endif // !_WINDOWS
< prev index next >