< prev index next >

src/share/vm/utilities/decoder_elf.hpp

Print this page
rev 13549 : 8185712: [windows] Improve native symbol decoder
Reviewed-by: goetz, zgu


  22  *
  23  */
  24 
  25 #ifndef SHARE_VM_UTILITIES_DECODER_ELF_HPP
  26 #define SHARE_VM_UTILITIES_DECODER_ELF_HPP
  27 
  28 #if !defined(_WINDOWS) && !defined(__APPLE__)
  29 
  30 #include "utilities/decoder.hpp"
  31 #include "utilities/elfFile.hpp"
  32 
  33 class ElfDecoder : public AbstractDecoder {
  34 
  35 public:
  36   ElfDecoder() {
  37     _opened_elf_files = NULL;
  38     _decoder_status = no_error;
  39   }
  40   virtual ~ElfDecoder();
  41 
  42   bool can_decode_C_frame_in_vm() const { return true; }
  43 
  44   bool demangle(const char* symbol, char *buf, int buflen);
  45   bool decode(address addr, char *buf, int buflen, int* offset, const char* filepath, bool demangle);
  46   bool decode(address addr, char *buf, int buflen, int* offset, const void *base) {
  47     ShouldNotReachHere();
  48     return false;
  49   }
  50 
  51 private:
  52   ElfFile*         get_elf_file(const char* filepath);
  53 
  54 private:
  55   ElfFile*         _opened_elf_files;
  56 };
  57 
  58 #endif // !_WINDOWS && !__APPLE__
  59 #endif // SHARE_VM_UTILITIES_DECODER_ELF_HPP


  22  *
  23  */
  24 
  25 #ifndef SHARE_VM_UTILITIES_DECODER_ELF_HPP
  26 #define SHARE_VM_UTILITIES_DECODER_ELF_HPP
  27 
  28 #if !defined(_WINDOWS) && !defined(__APPLE__)
  29 
  30 #include "utilities/decoder.hpp"
  31 #include "utilities/elfFile.hpp"
  32 
  33 class ElfDecoder : public AbstractDecoder {
  34 
  35 public:
  36   ElfDecoder() {
  37     _opened_elf_files = NULL;
  38     _decoder_status = no_error;
  39   }
  40   virtual ~ElfDecoder();
  41 


  42   bool demangle(const char* symbol, char *buf, int buflen);
  43   bool decode(address addr, char *buf, int buflen, int* offset, const char* filepath, bool demangle);
  44   bool decode(address addr, char *buf, int buflen, int* offset, const void *base) {
  45     ShouldNotReachHere();
  46     return false;
  47   }
  48 
  49 private:
  50   ElfFile*         get_elf_file(const char* filepath);
  51 
  52 private:
  53   ElfFile*         _opened_elf_files;
  54 };
  55 
  56 #endif // !_WINDOWS && !__APPLE__
  57 #endif // SHARE_VM_UTILITIES_DECODER_ELF_HPP
< prev index next >