50 StringSection<ElfType_>,
51 DynamicSection<ElfType_>,
52 SymbolSection<ElfType_>,
53 GenericSection<ElfType_>,
54 RelocationSection<ElfType_, Relocation<ElfType_> >,
55 RelocationSection<ElfType_, RelocationA<ElfType_> >
61 typename ElfType_::Word _index;
62 typename ElfType_::SectionHeader _shdr;
66 void resolve_section_name(std::string name)
71 typename ElfType_::Word get_name_index()
const
77 Section(
typename ElfType_::Word,
const typename ElfType_::SectionHeader &);
80 virtual typename ElfType_::Offset get_data_offset()
const
82 return _shdr.sh_offset;
85 virtual std::string get_name()
const
89 virtual std::string get_type()
const = 0;
90 typename ElfType_::Word get_index()
const
95 typename ElfType_::Word get_link_index()
const
100 typename ElfType_::Address get_virtual_address()
const
102 return _shdr.sh_addr;
105 typename ElfType_::SectionSize get_size()
const
107 return _shdr.sh_size;
110 std::string description()
const;
126 class StringSection :
127 public Section<ElfType_>,
131 std::string _stringTable;
134 StringSection(
typename ElfType_::Word,
const typename ElfType_::SectionHeader &, std::istream &,
bool);
135 ~StringSection()
override;
137 std::string get_string(
typename ElfType_::Word)
const;
138 typename ElfType_::Word get_max_string()
const
140 return _stringTable.length();
143 std::string get_type()
const override;