|
LLDB mainline
|
#include "DWARFDebugInfoEntry.h"#include <cassert>#include <algorithm>#include <limits>#include <optional>#include "LogChannelDWARF.h"#include "lldb/Core/Module.h"#include "lldb/Expression/DWARFExpression.h"#include "lldb/Symbol/ObjectFile.h"#include "llvm/ADT/STLExtras.h"#include "llvm/DebugInfo/DWARF/DWARFAddressRange.h"#include "llvm/Support/Error.h"#include "llvm/Support/FormatAdapters.h"#include "llvm/Support/LEB128.h"#include "DWARFCompileUnit.h"#include "DWARFDebugAranges.h"#include "DWARFDebugInfo.h"#include "DWARFDeclContext.h"#include "DWARFFormValue.h"#include "DWARFUnit.h"#include "SymbolFileDWARF.h"#include "SymbolFileDWARFDwo.h"Go to the source code of this file.
Functions | |
| static llvm::Expected< llvm::DWARFAddressRangesVector > | GetRanges (DWARFUnit &unit, const DWARFFormValue &value) |
| static void | ExtractAttrAndFormValue (const llvm::DWARFAbbreviationDeclaration::AttributeSpec &attr_spec, dw_attr_t &attr, DWARFFormValue &form_value) |
| static void | GetDIENamesAndRanges (const DWARFDIE &die, const char *&name, const char *&mangled, llvm::DWARFAddressRangesVector &ranges, std::optional< int > &decl_file, std::optional< int > &decl_line, std::optional< int > &decl_column, std::optional< int > &call_file, std::optional< int > &call_line, std::optional< int > &call_column, DWARFExpressionList *frame_base, llvm::SmallVectorImpl< DWARFDIE > &elaborating_dies) |
| Helper for the public DWARFDebugInfoEntry::GetDIENamesAndRanges API. | |
| static bool | GetAttributes (llvm::SmallVectorImpl< DWARFDIE > &worklist, llvm::SmallPtrSet< DWARFDebugInfoEntry const *, 3 > &seen, DWARFAttributes &attributes) |
| Helper for the public DWARFDebugInfoEntry::GetAttributes API. | |
Variables | |
| int | g_verbose |
|
static |
Definition at line 92 of file DWARFDebugInfoEntry.cpp.
References lldb_private::plugin::dwarf::DWARFFormValue::FormRef(), and lldb_private::plugin::dwarf::DWARFFormValue::SetSigned().
Referenced by GetAttributes(), and GetDIENamesAndRanges().
|
static |
Helper for the public DWARFDebugInfoEntry::GetAttributes API.
Adds all attributes of the DIE at the top of the worklist to the attributes list. Specifcations and abstract origins are added to the worklist if the referenced DIE has not been seen before.
Definition at line 327 of file DWARFDebugInfoEntry.cpp.
References lldb_private::plugin::dwarf::DWARFAttributes::Append(), ExtractAttrAndFormValue(), lldb_private::plugin::dwarf::DWARFFormValue::ExtractValue(), lldb_private::plugin::dwarf::DWARFFormValue::Form(), lldb_private::plugin::dwarf::DWARFBaseDIE::GetCU(), lldb_private::DataExtractor::GetData(), lldb_private::plugin::dwarf::DWARFDIE::GetDIE(), lldb_private::plugin::dwarf::DWARFFormValue::GetFixedSize(), lldb_private::plugin::dwarf::DWARFFormValue::Reference(), and lldb_private::plugin::dwarf::DWARFFormValue::SkipValue().
|
static |
Helper for the public DWARFDebugInfoEntry::GetDIENamesAndRanges API.
Fills in the output parameters that aren't set yet from die and appends the DIEs it elaborates on to elaborating_dies.
Definition at line 104 of file DWARFDebugInfoEntry.cpp.
References lldb_private::plugin::dwarf::DWARFFormValue::Address(), lldb_private::plugin::dwarf::DWARFFormValue::AsCString(), lldb_private::plugin::dwarf::DWARFFormValue::BlockData(), ExtractAttrAndFormValue(), lldb_private::plugin::dwarf::DWARFFormValue::ExtractValue(), lldb_private::plugin::dwarf::DWARFFormValue::Form(), lldb_private::plugin::dwarf::DWARFUnit::GetBaseAddress(), lldb_private::DataExtractor::GetByteSize(), lldb_private::plugin::dwarf::DWARFBaseDIE::GetCU(), lldb_private::plugin::dwarf::DWARFUnit::GetData(), lldb_private::DataExtractor::GetDataStart(), lldb_private::plugin::dwarf::DWARFDIE::GetDIE(), lldb_private::plugin::dwarf::DWARFUnit::GetLocationData(), GetRanges(), lldb_private::plugin::dwarf::DWARFUnit::GetSymbolFileDWARF(), LLDB_INVALID_ADDRESS, lldb_private::plugin::dwarf::DWARFUnit::ParseDWARFLocationList(), lldb_private::plugin::dwarf::DWARFFormValue::Reference(), lldb_private::DWARFExpressionList::SetFuncFileAddress(), lldb_private::plugin::dwarf::DWARFFormValue::Unsigned(), and lldb_private::DataExtractor::ValidOffset().
|
static |
Definition at line 86 of file DWARFDebugInfoEntry.cpp.
References lldb_private::plugin::dwarf::DWARFUnit::FindRnglistFromIndex(), lldb_private::plugin::dwarf::DWARFUnit::FindRnglistFromOffset(), lldb_private::plugin::dwarf::DWARFFormValue::Form(), and lldb_private::plugin::dwarf::DWARFFormValue::Unsigned().
Referenced by lldb_private::plugin::dwarf::DWARFDebugInfoEntry::GetAttributeAddressRanges(), and GetDIENamesAndRanges().
|
extern |