LLDB mainline
|
#include "SymbolFileDWARF.h"
#include "llvm/DebugInfo/DWARF/DWARFDebugLoc.h"
#include "llvm/Support/Casting.h"
#include "llvm/Support/Threading.h"
#include "lldb/Core/Module.h"
#include "lldb/Core/ModuleList.h"
#include "lldb/Core/ModuleSpec.h"
#include "lldb/Core/PluginManager.h"
#include "lldb/Core/Progress.h"
#include "lldb/Core/Section.h"
#include "lldb/Core/StreamFile.h"
#include "lldb/Core/Value.h"
#include "lldb/Utility/ArchSpec.h"
#include "lldb/Utility/LLDBLog.h"
#include "lldb/Utility/RegularExpression.h"
#include "lldb/Utility/Scalar.h"
#include "lldb/Utility/StreamString.h"
#include "lldb/Utility/Timer.h"
#include "Plugins/ExpressionParser/Clang/ClangModulesDeclVendor.h"
#include "Plugins/Language/CPlusPlus/CPlusPlusLanguage.h"
#include "lldb/Host/FileSystem.h"
#include "lldb/Host/Host.h"
#include "lldb/Interpreter/OptionValueFileSpecList.h"
#include "lldb/Interpreter/OptionValueProperties.h"
#include "Plugins/ExpressionParser/Clang/ClangUtil.h"
#include "Plugins/SymbolFile/DWARF/DWARFDebugInfoEntry.h"
#include "Plugins/TypeSystem/Clang/TypeSystemClang.h"
#include "lldb/Symbol/Block.h"
#include "lldb/Symbol/CompileUnit.h"
#include "lldb/Symbol/CompilerDecl.h"
#include "lldb/Symbol/CompilerDeclContext.h"
#include "lldb/Symbol/DebugMacros.h"
#include "lldb/Symbol/LineTable.h"
#include "lldb/Symbol/LocateSymbolFile.h"
#include "lldb/Symbol/ObjectFile.h"
#include "lldb/Symbol/SymbolFile.h"
#include "lldb/Symbol/TypeMap.h"
#include "lldb/Symbol/TypeSystem.h"
#include "lldb/Symbol/VariableList.h"
#include "lldb/Target/Language.h"
#include "lldb/Target/Target.h"
#include "AppleDWARFIndex.h"
#include "DWARFASTParser.h"
#include "DWARFASTParserClang.h"
#include "DWARFCompileUnit.h"
#include "DWARFDebugAbbrev.h"
#include "DWARFDebugAranges.h"
#include "DWARFDebugInfo.h"
#include "DWARFDebugMacro.h"
#include "DWARFDebugRanges.h"
#include "DWARFDeclContext.h"
#include "DWARFFormValue.h"
#include "DWARFTypeUnit.h"
#include "DWARFUnit.h"
#include "DebugNamesDWARFIndex.h"
#include "LogChannelDWARF.h"
#include "ManualDWARFIndex.h"
#include "SymbolFileDWARFDebugMap.h"
#include "SymbolFileDWARFDwo.h"
#include "llvm/DebugInfo/DWARF/DWARFContext.h"
#include "llvm/Support/FileSystem.h"
#include "llvm/Support/FormatVariadic.h"
#include <algorithm>
#include <map>
#include <memory>
#include <optional>
#include <cctype>
#include <cstring>
#include "SymbolFileDWARFProperties.inc"
#include "SymbolFileDWARFPropertiesEnum.inc"
Go to the source code of this file.
Macros | |
#define | DEBUG_PRINTF(fmt, ...) |
#define | LLDB_PROPERTIES_symbolfiledwarf |
#define | LLDB_PROPERTIES_symbolfiledwarf |
Functions | |
static PluginProperties & | GetGlobalPluginProperties () |
static const llvm::DWARFDebugLine::LineTable * | ParseLLVMLineTable (lldb_private::DWARFContext &context, llvm::DWARFDebugLine &line, dw_offset_t line_offset, dw_offset_t unit_offset) |
static bool | ParseLLVMLineTablePrologue (lldb_private::DWARFContext &context, llvm::DWARFDebugLine::Prologue &prologue, dw_offset_t line_offset, dw_offset_t unit_offset) |
static std::optional< std::string > | GetFileByIndex (const llvm::DWARFDebugLine::Prologue &prologue, size_t idx, llvm::StringRef compile_dir, FileSpec::Style style) |
static FileSpecList | ParseSupportFilesFromPrologue (const lldb::ModuleSP &module, const llvm::DWARFDebugLine::Prologue &prologue, FileSpec::Style style, llvm::StringRef compile_dir={}) |
static ConstString | GetDWARFMachOSegmentName () |
static void | MakeAbsoluteAndRemap (FileSpec &file_spec, DWARFUnit &dwarf_cu, const ModuleSP &module_sp) |
Make an absolute path out of file_spec and remap it using the module's source remapping dictionary. | |
static const char * | GetDWOName (DWARFCompileUnit &dwarf_cu, const DWARFDebugInfoEntry &cu_die) |
Return the DW_AT_(GNU_)dwo_name. | |
static std::optional< uint64_t > | GetDWOId (DWARFCompileUnit &dwarf_cu, const DWARFDebugInfoEntry &cu_die) |
Return the DW_AT_(GNU_)dwo_id. | |
static CallSiteParameterArray | CollectCallSiteParameters (ModuleSP module, DWARFDIE call_site_die) |
Collect call site parameters in a DW_TAG_call_site DIE. | |
#define DEBUG_PRINTF | ( | fmt, | |
... | |||
) |
Definition at line 95 of file SymbolFileDWARF.cpp.
#define LLDB_PROPERTIES_symbolfiledwarf |
Definition at line 112 of file SymbolFileDWARF.cpp.
#define LLDB_PROPERTIES_symbolfiledwarf |
Definition at line 112 of file SymbolFileDWARF.cpp.
|
static |
Collect call site parameters in a DW_TAG_call_site DIE.
Definition at line 3883 of file SymbolFileDWARF.cpp.
References DWARFAttributes::AttributeAtIndex(), DWARFFormValue::BlockData(), DWARFDIE::children(), DWARFAttributes::ExtractFormValueAtIndex(), DWARFFormValue::Form(), DWARFFormValue::IsBlockForm(), and DWARFFormValue::Unsigned().
Referenced by SymbolFileDWARF::CollectCallEdges().
|
static |
Definition at line 419 of file SymbolFileDWARF.cpp.
Referenced by SymbolFileDWARF::CalculateAbilities().
|
static |
Return the DW_AT_(GNU_)dwo_id.
Definition at line 1688 of file SymbolFileDWARF.cpp.
References DWARFDebugInfoEntry::GetAttributeValueAsOptionalUnsigned().
|
static |
Return the DW_AT_(GNU_)dwo_name.
Definition at line 693 of file SymbolFileDWARF.cpp.
References DWARFDebugInfoEntry::GetAttributeValueAsString().
Referenced by SymbolFileDWARF::GetDwoSymbolFileForCompileUnit(), SymbolFileDWARF::ParseCompileUnit(), and SymbolFileDWARF::UpdateExternalModuleListIfNeeded().
|
static |
Definition at line 192 of file SymbolFileDWARF.cpp.
|
static |
Definition at line 135 of file SymbolFileDWARF.cpp.
|
static |
Make an absolute path out of file_spec
and remap it using the module's source remapping dictionary.
Definition at line 679 of file SymbolFileDWARF.cpp.
References DWARFUnit::GetCompilationDirectory(), lldb_private::FileSpec::GetPath(), lldb_private::FileSpec::MakeAbsolute(), and lldb_private::FileSpec::SetFile().
Referenced by SymbolFileDWARF::ParseCompileUnit(), and SymbolFileDWARF::ParseImportedModules().
|
static |
Definition at line 141 of file SymbolFileDWARF.cpp.
References lldb_private::DWARFContext::GetAsLLVM(), lldb_private::DWARFDataExtractor::GetAsLLVM(), lldb_private::GetLog(), lldb_private::DWARFContext::getOrLoadLineData(), and LLDB_LOG_ERROR.
Referenced by SymbolFileDWARF::ParseLineTable().
|
static |
Definition at line 164 of file SymbolFileDWARF.cpp.
References error(), lldb_private::DWARFContext::GetAsLLVM(), lldb_private::DWARFDataExtractor::GetAsLLVM(), lldb_private::GetLog(), lldb_private::DWARFContext::getOrLoadLineData(), and LLDB_LOG_ERROR.
|
static |
Definition at line 209 of file SymbolFileDWARF.cpp.
Referenced by SymbolFileDWARF::GetTypeUnitSupportFiles().