LLVM  6.0.0svn
Classes | Public Member Functions | List of all members
llvm::DWARFVerifier Class Reference

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 section. More...
 
bool handleDebugLine ()
 Verify the information in the .debug_line section. More...
 
bool handleAccelTables ()
 Verify the information in accelerator tables, if they exist. More...
 

Detailed Description

A class that verifies DWARF debug information given a DWARF Context.

Definition at line 34 of file DWARFVerifier.h.

Constructor & Destructor Documentation

◆ DWARFVerifier()

llvm::DWARFVerifier::DWARFVerifier ( raw_ostream S,
DWARFContext D,
DIDumpOptions  DumpOpts = DIDumpOptions::getForSingleDIE() 
)
inline

Member Function Documentation

◆ handleAccelTables()

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.

Returns
true if the existing Apple-style accelerator tables verify successfully, false otherwise.

Definition at line 764 of file DWARFVerifier.cpp.

References D, llvm::DWARFSection::Data, llvm::StringRef::empty(), llvm::dwarf::syntax::Error, llvm::DWARFObject::getAppleNamespacesSection(), llvm::DWARFObject::getAppleNamesSection(), llvm::DWARFObject::getAppleObjCSection(), llvm::DWARFObject::getAppleTypesSection(), llvm::DWARFObject::getStringSection(), llvm::dwarf::syntax::Note, and llvm::dwarf::syntax::Warning.

Referenced by DWARFVerifier(), and llvm::DWARFContext::verify().

◆ handleDebugAbbrev()

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.

Returns
true if .debug_abbrev and .debug_abbrev.dwo verify successfully, false otherwise.

Definition at line 233 of file DWARFVerifier.cpp.

References llvm::StringRef::empty(), llvm::DWARFObject::getAbbrevDWOSection(), and llvm::DWARFObject::getAbbrevSection().

Referenced by DWARFVerifier(), and llvm::DWARFContext::verify().

◆ handleDebugInfo()

bool DWARFVerifier::handleDebugInfo ( )

Verify the information in the .debug_info section.

Any errors are reported to the stream that was this object was constructed with.

Returns
true if the .debug_info verifies successfully, false otherwise.

Definition at line 253 of file DWARFVerifier.cpp.

References llvm::DILineInfoSpecifier::AbsoluteFilePath, assert(), llvm::DWARFAttribute::Attr, llvm::DWARFVerifier::DieRangeInfo::Children, llvm::DWARFVerifier::DieRangeInfo::contains(), llvm::DWARFSection::Data, llvm::DWARFVerifier::DieRangeInfo::Die, llvm::DWARFDie::dump(), llvm::DWARFDebugLine::Row::dumpTableHeader(), llvm::StringMap< ValueTy, AllocatorTy >::end(), error, llvm::DWARFDie::find(), llvm::StringMap< ValueTy, AllocatorTy >::find(), llvm::format(), llvm::dwarf::FormEncodingString(), llvm::DWARFDie::getAddressRanges(), llvm::DWARFObject::getAppleObjCSection(), llvm::DWARFFormValue::getAsReference(), llvm::DWARFFormValue::getAsSectionOffset(), llvm::DWARFDie::getDwarfUnit(), llvm::DWARFFormValue::getForm(), llvm::DWARFObject::getInfoSection(), llvm::DWARFObject::getLineSection(), llvm::DWARFUnit::getNextUnitOffset(), llvm::DWARFDie::getOffset(), llvm::DWARFObject::getRangeSection(), llvm::DWARFFormValue::getRawUValue(), llvm::DWARFObject::getStringOffsetSection(), llvm::DWARFObject::getStringSection(), llvm::DWARFDie::getTag(), llvm::DWARFVerifier::DieRangeInfo::insert(), llvm::DWARFDie::isValid(), llvm::DataExtractor::isValidOffset(), llvm_unreachable, llvm::DWARFVerifier::DieRangeInfo::Ranges, llvm::StringRef::size(), llvm::dwarf::toSectionOffset(), and llvm::DWARFAttribute::Value.

Referenced by DWARFVerifier(), and llvm::DWARFContext::verify().

◆ handleDebugLine()

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.

Returns
true if the .debug_line verifies successfully, false otherwise.

Definition at line 652 of file DWARFVerifier.cpp.

References error, llvm::format(), llvm::DataExtractor::getCStr(), llvm::DWARFDie::getTag(), and llvm::dwarf::TagString().

Referenced by DWARFVerifier(), and llvm::DWARFContext::verify().


The documentation for this class was generated from the following files: