mirror of
https://git.suyu.dev/suyu/breakpad.git
synced 2026-01-03 13:14:45 +01:00
Move GetSectionByName out of CompilationUnit.
For the upcoming Dwarf5 LineInfo changes, we will need to get several additional sections by name, but without a the Compilation Unit. This change prepares for that. Change-Id: I566855abb339a856110a2f7d243d3848fe2b3c18 Reviewed-on: https://chromium-review.googlesource.com/c/breakpad/breakpad/+/2268861 Reviewed-by: Mark Mentovai <mark@chromium.org>
This commit is contained in:
parent
8efe0f1c3b
commit
b6f36dd775
4 changed files with 30 additions and 26 deletions
|
|
@ -65,6 +65,13 @@ class DwpReader;
|
|||
// This maps from a string naming a section to a pair containing a
|
||||
// the data for the section, and the size of the section.
|
||||
typedef std::map<string, std::pair<const uint8_t *, uint64_t> > SectionMap;
|
||||
|
||||
// Abstract away the difference between elf and mach-o section names.
|
||||
// Elf-names use ".section_name, mach-o uses "__section_name". Pass "name" in
|
||||
// the elf form, ".section_name".
|
||||
const SectionMap::const_iterator GetSectionByName(const SectionMap&
|
||||
sections, const char *name);
|
||||
|
||||
typedef std::list<std::pair<enum DwarfAttribute, enum DwarfForm> >
|
||||
AttributeList;
|
||||
typedef AttributeList::iterator AttributeIterator;
|
||||
|
|
@ -544,20 +551,6 @@ class CompilationUnit {
|
|||
void ReadDebugSectionsFromDwo(ElfReader* elf_reader,
|
||||
SectionMap* sections);
|
||||
|
||||
// Abstract away the difference between elf, mach-o, and Mac OS section names.
|
||||
// Elf-names use ".section_name, others use "__section_name". Pass "name" in
|
||||
// the elf form, ".section_name".
|
||||
const SectionMap::const_iterator GetSectionByName(const char *name) {
|
||||
assert(name[0] == '.');
|
||||
auto iter = sections_.find(name);
|
||||
if (iter != sections_.end())
|
||||
return iter;
|
||||
std::string macho_name("__");
|
||||
macho_name += name + 1;
|
||||
iter = sections_.find(macho_name);
|
||||
return iter;
|
||||
}
|
||||
|
||||
// Path of the file containing the debug information.
|
||||
const string path_;
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue