#include "lldb/Symbol/CompileUnit.h"
#include "lldb/Core/Module.h"
#include "lldb/Symbol/LineTable.h"
#include "lldb/Symbol/SymbolFile.h"
#include "lldb/Symbol/VariableList.h"
#include "lldb/Target/Language.h"
#include "lldb/Utility/Timer.h"
#include <optional>
usingnamespacelldb;
usingnamespacelldb_private;
CompileUnit::CompileUnit(const lldb::ModuleSP &module_sp, void *user_data,
const char *pathname, const lldb::user_id_t cu_sym_id,
lldb::LanguageType language,
lldb_private::LazyBool is_optimized)
: … { … }
CompileUnit::CompileUnit(const lldb::ModuleSP &module_sp, void *user_data,
lldb::SupportFileSP support_file_sp,
const lldb::user_id_t cu_sym_id,
lldb::LanguageType language,
lldb_private::LazyBool is_optimized,
SupportFileList &&support_files)
: … { … }
void CompileUnit::CalculateSymbolContext(SymbolContext *sc) { … }
ModuleSP CompileUnit::CalculateSymbolContextModule() { … }
CompileUnit *CompileUnit::CalculateSymbolContextCompileUnit() { … }
void CompileUnit::DumpSymbolContext(Stream *s) { … }
void CompileUnit::GetDescription(Stream *s,
lldb::DescriptionLevel level) const { … }
void CompileUnit::ForeachFunction(
llvm::function_ref<bool(const FunctionSP &)> lambda) const { … }
lldb::FunctionSP CompileUnit::FindFunction(
llvm::function_ref<bool(const FunctionSP &)> matching_lambda) { … }
const char *CompileUnit::GetCachedLanguage() const { … }
void CompileUnit::Dump(Stream *s, bool show_context) const { … }
void CompileUnit::AddFunction(FunctionSP &funcSP) { … }
FunctionSP CompileUnit::FindFunctionByUID(lldb::user_id_t func_uid) { … }
lldb::LanguageType CompileUnit::GetLanguage() { … }
LineTable *CompileUnit::GetLineTable() { … }
void CompileUnit::SetLineTable(LineTable *line_table) { … }
DebugMacros *CompileUnit::GetDebugMacros() { … }
void CompileUnit::SetDebugMacros(const DebugMacrosSP &debug_macros_sp) { … }
VariableListSP CompileUnit::GetVariableList(bool can_create) { … }
std::vector<uint32_t>
FindFileIndexes(const SupportFileList &files, const FileSpec &file,
RealpathPrefixes *realpath_prefixes = nullptr) { … }
uint32_t CompileUnit::FindLineEntry(uint32_t start_idx, uint32_t line,
const FileSpec *file_spec_ptr, bool exact,
LineEntry *line_entry_ptr) { … }
void CompileUnit::ResolveSymbolContext(
const SourceLocationSpec &src_location_spec,
SymbolContextItem resolve_scope, SymbolContextList &sc_list,
RealpathPrefixes *realpath_prefixes) { … }
bool CompileUnit::GetIsOptimized() { … }
void CompileUnit::SetVariableList(VariableListSP &variables) { … }
const std::vector<SourceModule> &CompileUnit::GetImportedModules() { … }
bool CompileUnit::ForEachExternalModule(
llvm::DenseSet<SymbolFile *> &visited_symbol_files,
llvm::function_ref<bool(Module &)> lambda) { … }
const SupportFileList &CompileUnit::GetSupportFiles() { … }
void *CompileUnit::GetUserData() const { … }