LLVM 18.0.0git
|
A class that verifies DWARF debug information given a DWARF Context. More...
#include "llvm/DebugInfo/DWARF/DWARFVerifier.h"
Classes | |
struct | DieRangeInfo |
A class that keeps the address range information for a single DIE. More... | |
Public Member Functions | |
DWARFVerifier (raw_ostream &S, DWARFContext &D, DIDumpOptions DumpOpts=DIDumpOptions::getForSingleDIE()) | |
bool | handleDebugAbbrev () |
Verify the information in any of the following sections, if available: .debug_abbrev, debug_abbrev.dwo. | |
bool | handleDebugInfo () |
Verify the information in the .debug_info and .debug_types sections. | |
bool | handleDebugCUIndex () |
Verify the information in the .debug_cu_index section. | |
bool | handleDebugTUIndex () |
Verify the information in the .debug_tu_index section. | |
bool | handleDebugLine () |
Verify the information in the .debug_line section. | |
bool | handleAccelTables () |
Verify the information in accelerator tables, if they exist. | |
bool | handleDebugStrOffsets () |
Verify the information in the .debug_str_offsets[.dwo]. | |
bool | verifyDebugStrOffsets (StringRef SectionName, const DWARFSection &Section, StringRef StrData, void(DWARFObject::*)(function_ref< void(const DWARFSection &)>) const) |
A class that verifies DWARF debug information given a DWARF Context.
Definition at line 34 of file DWARFVerifier.h.
DWARFVerifier::DWARFVerifier | ( | raw_ostream & | S, |
DWARFContext & | D, | ||
DIDumpOptions | DumpOpts = DIDumpOptions::getForSingleDIE() |
||
) |
Definition at line 966 of file DWARFVerifier.cpp.
References F, llvm::DWARFContext::getDWARFObj(), and llvm::DWARFObject::getFile().
bool DWARFVerifier::handleAccelTables | ( | ) |
Verify the information in accelerator tables, if they exist.
Any errors are reported to the stream that was this object was constructed with.
Definition at line 1656 of file DWARFVerifier.cpp.
References D, llvm::DWARFContext::getDWARFObj(), and llvm::DWARFContext::isLittleEndian().
Referenced by llvm::DWARFContext::verify().
bool DWARFVerifier::handleDebugAbbrev | ( | ) |
Verify the information in any of the following sections, if available: .debug_abbrev, debug_abbrev.dwo.
Any errors are reported to the stream that was this object was constructed with.
Definition at line 336 of file DWARFVerifier.cpp.
References llvm::StringRef::empty(), llvm::DWARFObject::getAbbrevDWOSection(), llvm::DWARFObject::getAbbrevSection(), llvm::DWARFContext::getDebugAbbrev(), llvm::DWARFContext::getDebugAbbrevDWO(), llvm::DWARFContext::getDWARFObj(), and OS.
Referenced by llvm::DWARFContext::verify().
bool DWARFVerifier::handleDebugCUIndex | ( | ) |
Verify the information in the .debug_cu_index section.
Any errors are reported to the stream that was this object was constructed with.
Definition at line 455 of file DWARFVerifier.cpp.
References llvm::DWARFObject::getCUIndexSection(), and llvm::DWARFContext::getDWARFObj().
Referenced by llvm::DWARFContext::verify().
bool DWARFVerifier::handleDebugInfo | ( | ) |
Verify the information in the .debug_info and .debug_types sections.
Any errors are reported to the stream that this object was constructed with.
Definition at line 465 of file DWARFVerifier.cpp.
References llvm::DWARFObject::forEachInfoSections(), llvm::DWARFObject::forEachTypesSections(), llvm::DWARFContext::getDWARFObj(), llvm::DWARFContext::getDWOUnitsVector(), llvm::DWARFContext::getNormalUnitsVector(), and OS.
Referenced by llvm::DWARFContext::verify().
bool DWARFVerifier::handleDebugLine | ( | ) |
Verify the information in the .debug_line section.
Any errors are reported to the stream that was this object was constructed with.
Definition at line 976 of file DWARFVerifier.cpp.
References OS.
Referenced by llvm::DWARFContext::verify().
bool DWARFVerifier::handleDebugStrOffsets | ( | ) |
Verify the information in the .debug_str_offsets[.dwo].
Any errors are reported to the stream that was this object was constructed with.
Definition at line 1678 of file DWARFVerifier.cpp.
References llvm::DWARFObject::forEachInfoDWOSections(), llvm::DWARFObject::forEachInfoSections(), llvm::DWARFContext::getDWARFObj(), llvm::DWARFObject::getStrDWOSection(), llvm::DWARFObject::getStrOffsetsDWOSection(), llvm::DWARFObject::getStrOffsetsSection(), llvm::DWARFObject::getStrSection(), Success, and verifyDebugStrOffsets().
Referenced by llvm::DWARFContext::verify().
bool DWARFVerifier::handleDebugTUIndex | ( | ) |
Verify the information in the .debug_tu_index section.
Any errors are reported to the stream that was this object was constructed with.
Definition at line 460 of file DWARFVerifier.cpp.
References llvm::DW_SECT_EXT_TYPES, llvm::DWARFContext::getDWARFObj(), and llvm::DWARFObject::getTUIndexSection().
Referenced by llvm::DWARFContext::verify().
bool DWARFVerifier::verifyDebugStrOffsets | ( | StringRef | SectionName, |
const DWARFSection & | Section, | ||
StringRef | StrData, | ||
void(DWARFObject::*)(function_ref< void(const DWARFSection &)>) const | VisitInfoSections | ||
) |
Definition at line 1691 of file DWARFVerifier.cpp.
References llvm::CallingConv::C, E, llvm::Format, llvm::formatv(), llvm::DWARFContext::getDWARFObj(), llvm::dwarf::getDwarfOffsetByteSize(), llvm::DWARFDataExtractor::getInitialLength(), llvm::DataExtractor::getU16(), llvm::DWARFContext::isLittleEndian(), llvm::Length, llvm::Offset, llvm::StringRef::size(), Success, and llvm::dwarf::toString().
Referenced by handleDebugStrOffsets().