src/share/vm/compiler/disassembler.hpp
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File hotspot Sdiff src/share/vm/compiler

src/share/vm/compiler/disassembler.hpp

Print this page
rev 10084 : 8148696: Race loading hsdis may cause SIGSEGV
Summary: Guard library loading with a lock
Reviewed-by: vlivanov


  68 #endif
  69 #ifdef TARGET_ARCH_sparc
  70 # include "disassembler_sparc.hpp"
  71 #endif
  72 #ifdef TARGET_ARCH_zero
  73 # include "disassembler_zero.hpp"
  74 #endif
  75 #ifdef TARGET_ARCH_arm
  76 # include "disassembler_arm.hpp"
  77 #endif
  78 #ifdef TARGET_ARCH_ppc
  79 # include "disassembler_ppc.hpp"
  80 #endif
  81 #ifdef TARGET_ARCH_aarch64
  82 # include "disassembler_aarch64.hpp"
  83 #endif
  84 
  85 
  86  public:
  87   static bool can_decode() {

  88     return (_decode_instructions_virtual != NULL) ||
  89            (_decode_instructions != NULL) ||
  90            load_library();
  91   }
  92   static void decode(CodeBlob *cb,               outputStream* st = NULL);
  93   static void decode(nmethod* nm,                outputStream* st = NULL);
  94   static void decode(address begin, address end, outputStream* st = NULL, CodeStrings c = CodeStrings());
  95 };
  96 
  97 #endif // SHARE_VM_COMPILER_DISASSEMBLER_HPP


  68 #endif
  69 #ifdef TARGET_ARCH_sparc
  70 # include "disassembler_sparc.hpp"
  71 #endif
  72 #ifdef TARGET_ARCH_zero
  73 # include "disassembler_zero.hpp"
  74 #endif
  75 #ifdef TARGET_ARCH_arm
  76 # include "disassembler_arm.hpp"
  77 #endif
  78 #ifdef TARGET_ARCH_ppc
  79 # include "disassembler_ppc.hpp"
  80 #endif
  81 #ifdef TARGET_ARCH_aarch64
  82 # include "disassembler_aarch64.hpp"
  83 #endif
  84 
  85 
  86  public:
  87   static bool can_decode() {
  88     ttyLocker tl;
  89     return (_decode_instructions_virtual != NULL) ||
  90            (_decode_instructions != NULL) ||
  91            load_library();
  92   }
  93   static void decode(CodeBlob *cb,               outputStream* st = NULL);
  94   static void decode(nmethod* nm,                outputStream* st = NULL);
  95   static void decode(address begin, address end, outputStream* st = NULL, CodeStrings c = CodeStrings());
  96 };
  97 
  98 #endif // SHARE_VM_COMPILER_DISASSEMBLER_HPP
src/share/vm/compiler/disassembler.hpp
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File