Home | History | Annotate | Download | only in linux

Lines Matching refs:ElfClass

81 using google_breakpad::ElfClass;
156 template<typename ElfClass>
157 typename ElfClass::Addr GetLoadingAddress(
158 const typename ElfClass::Phdr* program_headers,
160 typedef typename ElfClass::Phdr Phdr;
176 template<typename ElfClass>
177 bool LoadStabs(const typename ElfClass::Ehdr* elf_header,
178 const typename ElfClass::Shdr* stab_section,
179 const typename ElfClass::Shdr* stabstr_section,
189 GetOffset<ElfClass, uint8_t>(elf_header, stab_section->sh_offset);
191 GetOffset<ElfClass, uint8_t>(elf_header, stabstr_section->sh_offset);
225 template<typename ElfClass>
227 const typename ElfClass::Ehdr* elf_header,
231 typedef typename ElfClass::Shdr Shdr;
244 GetOffset<ElfClass, Shdr>(elf_header, elf_header->e_shoff);
249 string name = GetOffset<ElfClass, char>(elf_header,
252 const char* contents = GetOffset<ElfClass, char>(elf_header,
291 template<typename ElfClass>
292 bool DwarfCFIRegisterNames(const typename ElfClass::Ehdr* elf_header,
315 template<typename ElfClass>
317 const typename ElfClass::Ehdr* elf_header,
319 const typename ElfClass::Shdr* section,
321 const typename ElfClass::Shdr* got_section,
322 const typename ElfClass::Shdr* text_section,
328 if (!DwarfCFIRegisterNames<ElfClass>(elf_header, &register_names)) {
340 GetOffset<ElfClass, char>(elf_header, section->sh_offset);
348 byte_reader.SetAddressSize(ElfClass::kAddrSize);
399 template<typename ElfClass>
400 bool ElfEndianness(const typename ElfClass::Ehdr* elf_header,
516 template<typename ElfClass>
519 typedef typename ElfClass::Addr Addr;
584 template<typename ElfClass>
587 const typename ElfClass::Ehdr* elf_header,
589 LoadSymbolsInfo<ElfClass>* info,
592 typedef typename ElfClass::Addr Addr;
593 typedef typename ElfClass::Phdr Phdr;
594 typedef typename ElfClass::Shdr Shdr;
595 typedef typename ElfClass::Word Word;
597 Addr loading_addr = GetLoadingAddress<ElfClass>(
598 GetOffset<ElfClass, Phdr>(elf_header, elf_header->e_phoff),
606 GetOffset<ElfClass, Shdr>(elf_header, elf_header->e_shoff);
609 GetOffset<ElfClass, char>(elf_header, section_names->sh_offset);
618 FindElfSectionByName<ElfClass>(".stab", SHT_PROGBITS,
627 if (!LoadStabs<ElfClass>(elf_header, stab_section, stabstr_section,
638 FindElfSectionByName<ElfClass>(".debug_info", debug_section_type,
645 if (!LoadDwarf<ElfClass>(obj_file, elf_header, big_endian,
654 FindElfSectionByName<ElfClass>(".dynsym", SHT_DYNSYM,
658 FindElfSectionByName<ElfClass>(".dynstr", SHT_STRTAB,
665 GetOffset<ElfClass, uint8_t>(elf_header,
668 GetOffset<ElfClass, uint8_t>(elf_header,
676 ElfClass::kAddrSize,
686 FindElfSectionByName<ElfClass>(".debug_frame", debug_section_type,
695 LoadDwarfCFI<ElfClass>(obj_file, elf_header, ".debug_frame",
704 FindElfSectionByName<ElfClass>(".eh_frame", SHT_PROGBITS,
711 FindElfSectionByName<ElfClass>(".got", SHT_PROGBITS,
715 FindElfSectionByName<ElfClass>(".text", SHT_PROGBITS,
721 LoadDwarfCFI<ElfClass>(obj_file, elf_header, ".eh_frame",
736 = FindElfSectionByName<ElfClass>(".gnu_debuglink", SHT_PROGBITS,
742 GetOffset<ElfClass, char>(elf_header,
775 template<typename ElfClass>
776 const char* ElfArchitecture(const typename ElfClass::Ehdr* elf_header) {
777 typedef typename ElfClass::Half Half;
823 template<typename ElfClass>
824 bool SanitizeDebugFile(const typename ElfClass::Ehdr* debug_elf_header,
830 ElfArchitecture<ElfClass>(debug_elf_header);
844 if (!ElfEndianness<ElfClass>(debug_elf_header, &debug_big_endian))
854 template<typename ElfClass>
855 bool ReadSymbolDataElfClass(const typename ElfClass::Ehdr* elf_header,
860 typedef typename ElfClass::Ehdr Ehdr;
861 typedef typename ElfClass::Shdr Shdr;
873 const char *architecture = ElfArchitecture<ElfClass>(elf_header);
882 if (!ElfEndianness<ElfClass>(elf_header, &big_endian))
889 LoadSymbolsInfo<ElfClass> info(debug_dirs);
891 if (!LoadSymbols<ElfClass>(obj_filename, big_endian, elf_header,
904 !SanitizeDebugFile<ElfClass>(debug_elf_header, debuglink_file,
909 if (!LoadSymbols<ElfClass>(debuglink_file, big_endian,
935 int elfclass = ElfClass(obj_file);
936 if (elfclass == ELFCLASS32) {
941 if (elfclass == ELFCLASS64) {