src/share/vm/utilities/decoder_elf.cpp
Index Unified diffs Context diffs Sdiffs Frames Patch New Old Previous File Next File hotspot Sdiff src/share/vm/utilities

src/share/vm/utilities/decoder_elf.cpp

Print this page




  46   if (!file->decode(addr, buf, buflen, offset)) {
  47     return false;
  48   }
  49   if (demangle_name && (buf[0] != '\0')) {
  50     demangle(buf, buf, buflen);
  51   }
  52   return true;
  53 }
  54 
  55 ElfFile* ElfDecoder::get_elf_file(const char* filepath) {
  56   ElfFile* file;
  57 
  58   file = _opened_elf_files;
  59   while (file != NULL) {
  60     if (file->same_elf_file(filepath)) {
  61       return file;
  62     }
  63     file = file->next();
  64   }
  65 
  66   file = new (std::nothrow)ElfFile(filepath);
  67   if (file != NULL) {
  68     if (_opened_elf_files != NULL) {
  69       file->set_next(_opened_elf_files);
  70     }
  71     _opened_elf_files = file;
  72   }
  73 
  74   return file;
  75 }
  76 #endif // !_WINDOWS && !__APPLE__


  46   if (!file->decode(addr, buf, buflen, offset)) {
  47     return false;
  48   }
  49   if (demangle_name && (buf[0] != '\0')) {
  50     demangle(buf, buf, buflen);
  51   }
  52   return true;
  53 }
  54 
  55 ElfFile* ElfDecoder::get_elf_file(const char* filepath) {
  56   ElfFile* file;
  57 
  58   file = _opened_elf_files;
  59   while (file != NULL) {
  60     if (file->same_elf_file(filepath)) {
  61       return file;
  62     }
  63     file = file->next();
  64   }
  65 
  66   file = new (std::nothrow)ElfFile(filepath, true /* load_tables */);
  67   if (file != NULL) {
  68     if (_opened_elf_files != NULL) {
  69       file->set_next(_opened_elf_files);
  70     }
  71     _opened_elf_files = file;
  72   }
  73 
  74   return file;
  75 }
  76 #endif // !_WINDOWS && !__APPLE__
src/share/vm/utilities/decoder_elf.cpp
Index Unified diffs Context diffs Sdiffs Frames Patch New Old Previous File Next File