Changeset View
Changeset View
Standalone View
Standalone View
llvm/lib/ObjectYAML/DWARFYAML.cpp
Show All 40 Lines | SetVector<StringRef> DWARFYAML::Data::getUsedSectionNames() const { | ||||
if (PubNames) | if (PubNames) | ||||
SecNames.insert("debug_pubnames"); | SecNames.insert("debug_pubnames"); | ||||
if (PubTypes) | if (PubTypes) | ||||
SecNames.insert("debug_pubtypes"); | SecNames.insert("debug_pubtypes"); | ||||
if (GNUPubNames) | if (GNUPubNames) | ||||
SecNames.insert("debug_gnu_pubnames"); | SecNames.insert("debug_gnu_pubnames"); | ||||
if (GNUPubTypes) | if (GNUPubTypes) | ||||
SecNames.insert("debug_gnu_pubtypes"); | SecNames.insert("debug_gnu_pubtypes"); | ||||
if (DebugStrOffsets) | |||||
SecNames.insert("debug_str_offsets"); | |||||
return SecNames; | return SecNames; | ||||
} | } | ||||
namespace yaml { | namespace yaml { | ||||
void MappingTraits<DWARFYAML::Data>::mapping(IO &IO, DWARFYAML::Data &DWARF) { | void MappingTraits<DWARFYAML::Data>::mapping(IO &IO, DWARFYAML::Data &DWARF) { | ||||
void *OldContext = IO.getContext(); | void *OldContext = IO.getContext(); | ||||
DWARFYAML::DWARFContext DWARFCtx; | DWARFYAML::DWARFContext DWARFCtx; | ||||
IO.setContext(&DWARFCtx); | IO.setContext(&DWARFCtx); | ||||
IO.mapOptional("debug_str", DWARF.DebugStrings); | IO.mapOptional("debug_str", DWARF.DebugStrings); | ||||
IO.mapOptional("debug_abbrev", DWARF.AbbrevDecls); | IO.mapOptional("debug_abbrev", DWARF.AbbrevDecls); | ||||
if (!DWARF.ARanges.empty() || !IO.outputting()) | if (!DWARF.ARanges.empty() || !IO.outputting()) | ||||
IO.mapOptional("debug_aranges", DWARF.ARanges); | IO.mapOptional("debug_aranges", DWARF.ARanges); | ||||
if (!DWARF.DebugRanges.empty() || !IO.outputting()) | if (!DWARF.DebugRanges.empty() || !IO.outputting()) | ||||
IO.mapOptional("debug_ranges", DWARF.DebugRanges); | IO.mapOptional("debug_ranges", DWARF.DebugRanges); | ||||
IO.mapOptional("debug_pubnames", DWARF.PubNames); | IO.mapOptional("debug_pubnames", DWARF.PubNames); | ||||
IO.mapOptional("debug_pubtypes", DWARF.PubTypes); | IO.mapOptional("debug_pubtypes", DWARF.PubTypes); | ||||
DWARFCtx.IsGNUPubSec = true; | DWARFCtx.IsGNUPubSec = true; | ||||
IO.mapOptional("debug_gnu_pubnames", DWARF.GNUPubNames); | IO.mapOptional("debug_gnu_pubnames", DWARF.GNUPubNames); | ||||
IO.mapOptional("debug_gnu_pubtypes", DWARF.GNUPubTypes); | IO.mapOptional("debug_gnu_pubtypes", DWARF.GNUPubTypes); | ||||
IO.mapOptional("debug_info", DWARF.CompileUnits); | IO.mapOptional("debug_info", DWARF.CompileUnits); | ||||
IO.mapOptional("debug_line", DWARF.DebugLines); | IO.mapOptional("debug_line", DWARF.DebugLines); | ||||
IO.mapOptional("debug_addr", DWARF.DebugAddr); | IO.mapOptional("debug_addr", DWARF.DebugAddr); | ||||
IO.mapOptional("debug_str_offsets", DWARF.DebugStrOffsets); | |||||
IO.setContext(OldContext); | IO.setContext(OldContext); | ||||
} | } | ||||
void MappingTraits<DWARFYAML::Abbrev>::mapping(IO &IO, | void MappingTraits<DWARFYAML::Abbrev>::mapping(IO &IO, | ||||
DWARFYAML::Abbrev &Abbrev) { | DWARFYAML::Abbrev &Abbrev) { | ||||
IO.mapOptional("Code", Abbrev.Code); | IO.mapOptional("Code", Abbrev.Code); | ||||
IO.mapRequired("Tag", Abbrev.Tag); | IO.mapRequired("Tag", Abbrev.Tag); | ||||
IO.mapRequired("Children", Abbrev.Children); | IO.mapRequired("Children", Abbrev.Children); | ||||
▲ Show 20 Lines • Show All 136 Lines • ▼ Show 20 Lines | void MappingTraits<DWARFYAML::AddrTableEntry>::mapping( | ||||
IO.mapOptional("Format", AddrTable.Format, dwarf::DWARF32); | IO.mapOptional("Format", AddrTable.Format, dwarf::DWARF32); | ||||
IO.mapOptional("Length", AddrTable.Length); | IO.mapOptional("Length", AddrTable.Length); | ||||
IO.mapRequired("Version", AddrTable.Version); | IO.mapRequired("Version", AddrTable.Version); | ||||
IO.mapOptional("AddressSize", AddrTable.AddrSize); | IO.mapOptional("AddressSize", AddrTable.AddrSize); | ||||
IO.mapOptional("SegmentSelectorSize", AddrTable.SegSelectorSize, 0); | IO.mapOptional("SegmentSelectorSize", AddrTable.SegSelectorSize, 0); | ||||
IO.mapOptional("Entries", AddrTable.SegAddrPairs); | IO.mapOptional("Entries", AddrTable.SegAddrPairs); | ||||
} | } | ||||
void MappingTraits<DWARFYAML::StringOffsetsTable>::mapping( | |||||
IO &IO, DWARFYAML::StringOffsetsTable &StrOffsetsTable) { | |||||
IO.mapOptional("Format", StrOffsetsTable.Format, dwarf::DWARF32); | |||||
IO.mapOptional("Length", StrOffsetsTable.Length); | |||||
IO.mapOptional("Version", StrOffsetsTable.Version, 5); | |||||
IO.mapOptional("Padding", StrOffsetsTable.Padding, 0); | |||||
IO.mapOptional("Offsets", StrOffsetsTable.Offsets); | |||||
} | |||||
void MappingTraits<DWARFYAML::InitialLength>::mapping( | void MappingTraits<DWARFYAML::InitialLength>::mapping( | ||||
IO &IO, DWARFYAML::InitialLength &InitialLength) { | IO &IO, DWARFYAML::InitialLength &InitialLength) { | ||||
IO.mapRequired("TotalLength", InitialLength.TotalLength); | IO.mapRequired("TotalLength", InitialLength.TotalLength); | ||||
if (InitialLength.isDWARF64()) | if (InitialLength.isDWARF64()) | ||||
IO.mapRequired("TotalLength64", InitialLength.TotalLength64); | IO.mapRequired("TotalLength64", InitialLength.TotalLength64); | ||||
} | } | ||||
} // end namespace yaml | } // end namespace yaml | ||||
} // end namespace llvm | } // end namespace llvm |