LLVM
8.0.1
|
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. More... | |
bool | handleDebugInfo () |
Verify the information in the .debug_info and .debug_types sections. More... | |
bool | handleDebugLine () |
Verify the information in the .debug_line section. More... | |
bool | handleAccelTables () |
Verify the information in accelerator tables, if they exist. More... | |
A class that verifies DWARF debug information given a DWARF Context.
Definition at line 36 of file DWARFVerifier.h.
DWARFVerifier::DWARFVerifier | ( | raw_ostream & | S, |
DWARFContext & | D, | ||
DIDumpOptions | DumpOpts = DIDumpOptions::getForSingleDIE() |
||
) |
Definition at line 812 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 1483 of file DWARFVerifier.cpp.
References D, llvm::DWARFSection::Data, llvm::DWARFDie::dump(), llvm::StringRef::empty(), llvm::WithColor::error(), llvm::DWARFObject::getAppleNamespacesSection(), llvm::DWARFObject::getAppleNamesSection(), llvm::DWARFObject::getAppleObjCSection(), llvm::DWARFObject::getAppleTypesSection(), llvm::DWARFObject::getDebugNamesSection(), llvm::DWARFObject::getStringSection(), llvm::WithColor::note(), and llvm::WithColor::warning().
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 280 of file DWARFVerifier.cpp.
References llvm::DWARFUnitVector::addUnit(), llvm::StringRef::empty(), llvm::DWARFUnitHeader::extract(), llvm::DWARFObject::getAbbrevDWOSection(), llvm::DWARFObject::getAbbrevSection(), llvm::DWARFObject::getAppleObjCSection(), llvm::DWARFObject::getLineSection(), llvm::DWARFObject::getLocSection(), llvm::DWARFObject::getRangeSection(), llvm::DWARFObject::getStringOffsetSection(), llvm::DWARFObject::getStringSection(), llvm::DataExtractor::isValidOffset(), llvm_unreachable, and Unit.
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 365 of file DWARFVerifier.cpp.
References llvm::DILineInfoSpecifier::AbsoluteFilePath, llvm::any_of(), assert(), llvm::DWARFAttribute::Attr, llvm::dwarf::AttributeString(), llvm::DWARFVerifier::DieRangeInfo::Children, llvm::consumeError(), llvm::DWARFVerifier::DieRangeInfo::contains(), D, llvm::DWARFSection::Data, llvm::Data, llvm::DWARFVerifier::DieRangeInfo::Die, llvm::DWARFDie::dump(), llvm::dump(), llvm::DWARFDebugLine::Row::dumpTableHeader(), llvm::DW_SECT_INFO, llvm::DW_SECT_TYPES, llvm::StringMap< ValueTy, AllocatorTy >::end(), error, llvm::DWARFDie::find(), llvm::StringMap< ValueTy, AllocatorTy >::find(), llvm::DWARFObject::forEachInfoSections(), llvm::DWARFObject::forEachTypesSections(), llvm::format(), llvm::formatv(), llvm::dwarf::FormEncodingString(), llvm::DWARFUnit::getAddressByteSize(), llvm::DWARFDie::getAddressRanges(), llvm::DWARFFormValue::getAsBlock(), llvm::DWARFFormValue::getAsReference(), llvm::DWARFFormValue::getAsSectionOffset(), llvm::DWARFDie::getAttributeValueAsReferencedDie(), llvm::DWARFDie::getDwarfUnit(), llvm::DWARFFormValue::getForm(), llvm::DWARFObject::getLineSection(), llvm::DWARFDie::getOffset(), llvm::DWARFObject::getRangeSection(), llvm::DWARFFormValue::getRawUValue(), llvm::DWARFObject::getStringOffsetSection(), llvm::DWARFObject::getStringSection(), llvm::DWARFDie::getTag(), llvm::DWARFUnit::getVersion(), llvm::DWARFVerifier::DieRangeInfo::insert(), llvm::DWARFExpression::Operation::isError(), llvm::dwarf::isType(), llvm::DWARFDie::isValid(), llvm::DWARFVerifier::DieRangeInfo::Ranges, ReportError(), llvm::StringRef::size(), llvm::dwarf::TagString(), llvm::dwarf::toSectionOffset(), llvm::toStringRef(), and llvm::DWARFAttribute::Value.
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 822 of file DWARFVerifier.cpp.
References llvm::DWARFContext::compile_units(), E, llvm::format(), llvm::formatv(), llvm::DataExtractor::getCStr(), llvm::DWARFContext::getDIEForOffset(), llvm::DWARFContext::getDWARFObj(), llvm::DWARFContext::getNumCompileUnits(), llvm::DWARFDie::getTag(), llvm::DWARFContext::isLittleEndian(), llvm::max(), Name, llvm::DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT, BucketT >::reserve(), llvm::Tag, llvm::dwarf::TagString(), and llvm::toString().
Referenced by llvm::DWARFContext::verify().