summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--lldb/include/lldb/Core/Module.h3
-rw-r--r--lldb/source/Commands/CommandObjectTarget.cpp94
-rw-r--r--lldb/source/Core/Module.cpp80
-rw-r--r--lldb/source/Expression/IRExecutionUnit.cpp6
-rw-r--r--lldb/source/Plugins/Platform/MacOSX/PlatformDarwin.cpp196
-rw-r--r--lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp6
-rw-r--r--lldb/source/Symbol/Block.cpp3
-rw-r--r--lldb/source/Symbol/Function.cpp17
-rw-r--r--lldb/source/Symbol/UnwindTable.cpp6
9 files changed, 188 insertions, 223 deletions
diff --git a/lldb/include/lldb/Core/Module.h b/lldb/include/lldb/Core/Module.h
index daf61a758d9..4064d266d0d 100644
--- a/lldb/include/lldb/Core/Module.h
+++ b/lldb/include/lldb/Core/Module.h
@@ -653,6 +653,9 @@ public:
GetSymbolVendor(bool can_create = true,
lldb_private::Stream *feedback_strm = nullptr);
+ SymbolFile *GetSymbolFile(bool can_create = true,
+ Stream *feedback_strm = nullptr);
+
/// Get a reference to the UUID value contained in this object.
///
/// If the executable image file doesn't not have a UUID value built into
diff --git a/lldb/source/Commands/CommandObjectTarget.cpp b/lldb/source/Commands/CommandObjectTarget.cpp
index 9569632f458..1c75966552a 100644
--- a/lldb/source/Commands/CommandObjectTarget.cpp
+++ b/lldb/source/Commands/CommandObjectTarget.cpp
@@ -2259,8 +2259,8 @@ protected:
if (m_interpreter.WasInterrupted())
break;
Module *m = target->GetImages().GetModulePointerAtIndex(image_idx);
- SymbolFile *sf = m->GetSymbolVendor()->GetSymbolFile();
- sf->DumpClangAST(result.GetOutputStream());
+ if (SymbolFile *sf = m->GetSymbolFile())
+ sf->DumpClangAST(result.GetOutputStream());
}
result.SetStatus(eReturnStatusSuccessFinishResult);
return true;
@@ -2285,8 +2285,8 @@ protected:
if (m_interpreter.WasInterrupted())
break;
Module *m = module_list.GetModulePointerAtIndex(i);
- SymbolFile *sf = m->GetSymbolVendor()->GetSymbolFile();
- sf->DumpClangAST(result.GetOutputStream());
+ if (SymbolFile *sf = m->GetSymbolFile())
+ sf->DumpClangAST(result.GetOutputStream());
}
}
result.SetStatus(eReturnStatusSuccessFinishResult);
@@ -3272,9 +3272,9 @@ protected:
case 's':
case 'S': {
- const SymbolVendor *symbol_vendor = module->GetSymbolVendor();
- if (symbol_vendor) {
- const FileSpec symfile_spec = symbol_vendor->GetMainFileSpec();
+ if (const SymbolFile *symbol_file = module->GetSymbolFile()) {
+ const FileSpec symfile_spec =
+ symbol_file->GetObjectFile()->GetFileSpec();
if (format_char == 'S') {
// Dump symbol file only if different from module file
if (!symfile_spec || symfile_spec == module->GetFileSpec()) {
@@ -4207,48 +4207,44 @@ protected:
// decides to create it!
module_sp->SetSymbolFileFileSpec(symbol_fspec);
- SymbolVendor *symbol_vendor =
- module_sp->GetSymbolVendor(true, &result.GetErrorStream());
- if (symbol_vendor) {
- SymbolFile *symbol_file = symbol_vendor->GetSymbolFile();
-
- if (symbol_file) {
- ObjectFile *object_file = symbol_file->GetObjectFile();
-
- if (object_file && object_file->GetFileSpec() == symbol_fspec) {
- // Provide feedback that the symfile has been successfully added.
- const FileSpec &module_fs = module_sp->GetFileSpec();
- result.AppendMessageWithFormat(
- "symbol file '%s' has been added to '%s'\n", symfile_path,
- module_fs.GetPath().c_str());
-
- // Let clients know something changed in the module if it is
- // currently loaded
- ModuleList module_list;
- module_list.Append(module_sp);
- target->SymbolsDidLoad(module_list);
-
- // Make sure we load any scripting resources that may be embedded
- // in the debug info files in case the platform supports that.
- Status error;
- StreamString feedback_stream;
- module_sp->LoadScriptingResourceInTarget(target, error,
- &feedback_stream);
- if (error.Fail() && error.AsCString())
- result.AppendWarningWithFormat(
- "unable to load scripting data for module %s - error "
- "reported was %s",
- module_sp->GetFileSpec()
- .GetFileNameStrippingExtension()
- .GetCString(),
- error.AsCString());
- else if (feedback_stream.GetSize())
- result.AppendWarningWithFormat("%s", feedback_stream.GetData());
-
- flush = true;
- result.SetStatus(eReturnStatusSuccessFinishResult);
- return true;
- }
+ SymbolFile *symbol_file =
+ module_sp->GetSymbolFile(true, &result.GetErrorStream());
+ if (symbol_file) {
+ ObjectFile *object_file = symbol_file->GetObjectFile();
+
+ if (object_file && object_file->GetFileSpec() == symbol_fspec) {
+ // Provide feedback that the symfile has been successfully added.
+ const FileSpec &module_fs = module_sp->GetFileSpec();
+ result.AppendMessageWithFormat(
+ "symbol file '%s' has been added to '%s'\n", symfile_path,
+ module_fs.GetPath().c_str());
+
+ // Let clients know something changed in the module if it is
+ // currently loaded
+ ModuleList module_list;
+ module_list.Append(module_sp);
+ target->SymbolsDidLoad(module_list);
+
+ // Make sure we load any scripting resources that may be embedded
+ // in the debug info files in case the platform supports that.
+ Status error;
+ StreamString feedback_stream;
+ module_sp->LoadScriptingResourceInTarget(target, error,
+ &feedback_stream);
+ if (error.Fail() && error.AsCString())
+ result.AppendWarningWithFormat(
+ "unable to load scripting data for module %s - error "
+ "reported was %s",
+ module_sp->GetFileSpec()
+ .GetFileNameStrippingExtension()
+ .GetCString(),
+ error.AsCString());
+ else if (feedback_stream.GetSize())
+ result.AppendWarningWithFormat("%s", feedback_stream.GetData());
+
+ flush = true;
+ result.SetStatus(eReturnStatusSuccessFinishResult);
+ return true;
}
}
// Clear the symbol file spec if anything went wrong
diff --git a/lldb/source/Core/Module.cpp b/lldb/source/Core/Module.cpp
index 9865beabeb5..a926e4ade84 100644
--- a/lldb/source/Core/Module.cpp
+++ b/lldb/source/Core/Module.cpp
@@ -366,7 +366,7 @@ void Module::ParseAllDebugSymbols() {
SymbolContext sc;
sc.module_sp = shared_from_this();
- SymbolVendor *symbols = GetSymbolVendor();
+ SymbolFile *symbols = GetSymbolFile();
for (size_t cu_idx = 0; cu_idx < num_comp_units; cu_idx++) {
sc.comp_unit = symbols->GetCompileUnitAtIndex(cu_idx).get();
@@ -406,8 +406,7 @@ size_t Module::GetNumCompileUnits() {
static Timer::Category func_cat(LLVM_PRETTY_FUNCTION);
Timer scoped_timer(func_cat, "Module::GetNumCompileUnits (module = %p)",
static_cast<void *>(this));
- SymbolVendor *symbols = GetSymbolVendor();
- if (symbols)
+ if (SymbolFile *symbols = GetSymbolFile())
return symbols->GetNumCompileUnits();
return 0;
}
@@ -418,8 +417,7 @@ CompUnitSP Module::GetCompileUnitAtIndex(size_t index) {
CompUnitSP cu_sp;
if (index < num_comp_units) {
- SymbolVendor *symbols = GetSymbolVendor();
- if (symbols)
+ if (SymbolFile *symbols = GetSymbolFile())
cu_sp = symbols->GetCompileUnitAtIndex(index);
}
return cu_sp;
@@ -457,8 +455,8 @@ uint32_t Module::ResolveSymbolContextForAddress(
sc.module_sp = shared_from_this();
resolved_flags |= eSymbolContextModule;
- SymbolVendor *sym_vendor = GetSymbolVendor();
- if (!sym_vendor)
+ SymbolFile *symfile = GetSymbolFile();
+ if (!symfile)
return resolved_flags;
// Resolve the compile unit, function, block, line table or line entry if
@@ -469,14 +467,14 @@ uint32_t Module::ResolveSymbolContextForAddress(
resolve_scope & eSymbolContextLineEntry ||
resolve_scope & eSymbolContextVariable) {
resolved_flags |=
- sym_vendor->ResolveSymbolContext(so_addr, resolve_scope, sc);
+ symfile->ResolveSymbolContext(so_addr, resolve_scope, sc);
}
// Resolve the symbol if requested, but don't re-look it up if we've
// already found it.
if (resolve_scope & eSymbolContextSymbol &&
!(resolved_flags & eSymbolContextSymbol)) {
- Symtab *symtab = sym_vendor->GetSymtab();
+ Symtab *symtab = symfile->GetSymtab();
if (symtab && so_addr.IsSectionOffset()) {
Symbol *matching_symbol = nullptr;
@@ -509,18 +507,15 @@ uint32_t Module::ResolveSymbolContextForAddress(
// files on MacOSX have an unstripped symbol table inside of them.
ObjectFile *symtab_objfile = symtab->GetObjectFile();
if (symtab_objfile && symtab_objfile->IsStripped()) {
- SymbolFile *symfile = sym_vendor->GetSymbolFile();
- if (symfile) {
- ObjectFile *symfile_objfile = symfile->GetObjectFile();
- if (symfile_objfile != symtab_objfile) {
- Symtab *symfile_symtab = symfile_objfile->GetSymtab();
- if (symfile_symtab) {
- Symbol *symbol =
- symfile_symtab->FindSymbolContainingFileAddress(
- so_addr.GetFileAddress());
- if (symbol && !symbol->IsSynthetic()) {
- sc.symbol = symbol;
- }
+ ObjectFile *symfile_objfile = symfile->GetObjectFile();
+ if (symfile_objfile != symtab_objfile) {
+ Symtab *symfile_symtab = symfile_objfile->GetSymtab();
+ if (symfile_symtab) {
+ Symbol *symbol =
+ symfile_symtab->FindSymbolContainingFileAddress(
+ so_addr.GetFileAddress());
+ if (symbol && !symbol->IsSynthetic()) {
+ sc.symbol = symbol;
}
}
}
@@ -592,8 +587,7 @@ uint32_t Module::ResolveSymbolContextsForFileSpec(
const uint32_t initial_count = sc_list.GetSize();
- SymbolVendor *symbols = GetSymbolVendor();
- if (symbols)
+ if (SymbolFile *symbols = GetSymbolFile())
symbols->ResolveSymbolContext(file_spec, line, check_inlines, resolve_scope,
sc_list);
@@ -604,8 +598,7 @@ size_t Module::FindGlobalVariables(ConstString name,
const CompilerDeclContext *parent_decl_ctx,
size_t max_matches,
VariableList &variables) {
- SymbolVendor *symbols = GetSymbolVendor();
- if (symbols)
+ if (SymbolFile *symbols = GetSymbolFile())
return symbols->FindGlobalVariables(name, parent_decl_ctx, max_matches,
variables);
return 0;
@@ -614,7 +607,7 @@ size_t Module::FindGlobalVariables(ConstString name,
size_t Module::FindGlobalVariables(const RegularExpression &regex,
size_t max_matches,
VariableList &variables) {
- SymbolVendor *symbols = GetSymbolVendor();
+ SymbolFile *symbols = GetSymbolFile();
if (symbols)
return symbols->FindGlobalVariables(regex, max_matches, variables);
return 0;
@@ -811,7 +804,7 @@ size_t Module::FindFunctions(ConstString name,
const size_t old_size = sc_list.GetSize();
// Find all the functions (not symbols, but debug information functions...
- SymbolVendor *symbols = GetSymbolVendor();
+ SymbolFile *symbols = GetSymbolFile();
if (name_type_mask & eFunctionNameTypeAuto) {
LookupInfo lookup_info(name, name_type_mask, eLanguageTypeUnknown);
@@ -861,8 +854,7 @@ size_t Module::FindFunctions(const RegularExpression &regex,
const size_t start_size = sc_list.GetSize();
- SymbolVendor *symbols = GetSymbolVendor();
- if (symbols) {
+ if (SymbolFile *symbols = GetSymbolFile()) {
symbols->FindFunctions(regex, include_inlines, append, sc_list);
// Now check our symbol table for symbols that are code symbols if
@@ -954,8 +946,7 @@ size_t Module::FindTypes_Impl(
TypeMap &types) {
static Timer::Category func_cat(LLVM_PRETTY_FUNCTION);
Timer scoped_timer(func_cat, LLVM_PRETTY_FUNCTION);
- SymbolVendor *symbols = GetSymbolVendor();
- if (symbols)
+ if (SymbolFile *symbols = GetSymbolFile())
return symbols->FindTypes(name, parent_decl_ctx, append, max_matches,
searched_symbol_files, types);
return 0;
@@ -1064,6 +1055,12 @@ SymbolVendor *Module::GetSymbolVendor(bool can_create,
return m_symfile_up.get();
}
+SymbolFile *Module::GetSymbolFile(bool can_create, Stream *feedback_strm) {
+ if (SymbolVendor *vendor = GetSymbolVendor(can_create, feedback_strm))
+ return vendor->GetSymbolFile();
+ return nullptr;
+}
+
void Module::SetFileSpecAndObjectName(const FileSpec &file,
ConstString object_name) {
// Container objects whose paths do not specify a file directly can call this
@@ -1290,9 +1287,8 @@ void Module::SectionFileAddressesChanged() {
ObjectFile *obj_file = GetObjectFile();
if (obj_file)
obj_file->SectionFileAddressesChanged();
- SymbolVendor *sym_vendor = GetSymbolVendor();
- if (sym_vendor != nullptr)
- sym_vendor->SectionFileAddressesChanged();
+ if (SymbolFile *symbols = GetSymbolFile())
+ symbols->SectionFileAddressesChanged();
}
UnwindTable &Module::GetUnwindTable() {
@@ -1407,18 +1403,16 @@ size_t Module::FindSymbolsMatchingRegExAndType(const RegularExpression &regex,
void Module::PreloadSymbols() {
std::lock_guard<std::recursive_mutex> guard(m_mutex);
- SymbolVendor * sym_vendor = GetSymbolVendor();
- if (!sym_vendor) {
+ SymbolFile *sym_file = GetSymbolFile();
+ if (!sym_file)
return;
- }
+
// Prime the symbol file first, since it adds symbols to the symbol table.
- if (SymbolFile *symbol_file = sym_vendor->GetSymbolFile()) {
- symbol_file->PreloadSymbols();
- }
+ sym_file->PreloadSymbols();
+
// Now we can prime the symbol table.
- if (Symtab * symtab = sym_vendor->GetSymtab()) {
+ if (Symtab *symtab = sym_file->GetSymtab())
symtab->PreloadSymbols();
- }
}
void Module::SetSymbolFileFileSpec(const FileSpec &file) {
@@ -1428,7 +1422,7 @@ void Module::SetSymbolFileFileSpec(const FileSpec &file) {
// Remove any sections in the unified section list that come from the
// current symbol vendor.
SectionList *section_list = GetSectionList();
- SymbolFile *symbol_file = m_symfile_up->GetSymbolFile();
+ SymbolFile *symbol_file = GetSymbolFile();
if (section_list && symbol_file) {
ObjectFile *obj_file = symbol_file->GetObjectFile();
// Make sure we have an object file and that the symbol vendor's objfile
diff --git a/lldb/source/Expression/IRExecutionUnit.cpp b/lldb/source/Expression/IRExecutionUnit.cpp
index b98a56b6e79..14d09afbe63 100644
--- a/lldb/source/Expression/IRExecutionUnit.cpp
+++ b/lldb/source/Expression/IRExecutionUnit.cpp
@@ -658,11 +658,7 @@ FindBestAlternateMangledName(ConstString demangled,
if (!sym_ctx.module_sp)
return ConstString();
- SymbolVendor *sym_vendor = sym_ctx.module_sp->GetSymbolVendor();
- if (!sym_vendor)
- return ConstString();
-
- lldb_private::SymbolFile *sym_file = sym_vendor->GetSymbolFile();
+ lldb_private::SymbolFile *sym_file = sym_ctx.module_sp->GetSymbolFile();
if (!sym_file)
return ConstString();
diff --git a/lldb/source/Plugins/Platform/MacOSX/PlatformDarwin.cpp b/lldb/source/Plugins/Platform/MacOSX/PlatformDarwin.cpp
index 266af0935b6..e497424de57 100644
--- a/lldb/source/Plugins/Platform/MacOSX/PlatformDarwin.cpp
+++ b/lldb/source/Plugins/Platform/MacOSX/PlatformDarwin.cpp
@@ -72,112 +72,106 @@ FileSpecList PlatformDarwin::LocateExecutableScriptingResources(
FileSpec module_spec = module.GetFileSpec();
if (module_spec) {
- SymbolVendor *symbols = module.GetSymbolVendor();
- if (symbols) {
- SymbolFile *symfile = symbols->GetSymbolFile();
- if (symfile) {
- ObjectFile *objfile = symfile->GetObjectFile();
- if (objfile) {
- FileSpec symfile_spec(objfile->GetFileSpec());
- if (symfile_spec &&
- strcasestr (symfile_spec.GetPath().c_str(),
- ".dSYM/Contents/Resources/DWARF") != nullptr &&
- FileSystem::Instance().Exists(symfile_spec)) {
- while (module_spec.GetFilename()) {
- std::string module_basename(
- module_spec.GetFilename().GetCString());
- std::string original_module_basename(module_basename);
-
- bool was_keyword = false;
-
- // FIXME: for Python, we cannot allow certain characters in
- // module
- // filenames we import. Theoretically, different scripting
- // languages may have different sets of forbidden tokens in
- // filenames, and that should be dealt with by each
- // ScriptInterpreter. For now, we just replace dots with
- // underscores, but if we ever support anything other than
- // Python we will need to rework this
- std::replace(module_basename.begin(), module_basename.end(),
- '.', '_');
- std::replace(module_basename.begin(), module_basename.end(),
- ' ', '_');
- std::replace(module_basename.begin(), module_basename.end(),
- '-', '_');
- ScriptInterpreter *script_interpreter =
- target->GetDebugger().GetScriptInterpreter();
- if (script_interpreter &&
- script_interpreter->IsReservedWord(
- module_basename.c_str())) {
- module_basename.insert(module_basename.begin(), '_');
- was_keyword = true;
- }
+ if (SymbolFile *symfile = module.GetSymbolFile()) {
+ ObjectFile *objfile = symfile->GetObjectFile();
+ if (objfile) {
+ FileSpec symfile_spec(objfile->GetFileSpec());
+ if (symfile_spec &&
+ strcasestr(symfile_spec.GetPath().c_str(),
+ ".dSYM/Contents/Resources/DWARF") != nullptr &&
+ FileSystem::Instance().Exists(symfile_spec)) {
+ while (module_spec.GetFilename()) {
+ std::string module_basename(
+ module_spec.GetFilename().GetCString());
+ std::string original_module_basename(module_basename);
+
+ bool was_keyword = false;
+
+ // FIXME: for Python, we cannot allow certain characters in
+ // module
+ // filenames we import. Theoretically, different scripting
+ // languages may have different sets of forbidden tokens in
+ // filenames, and that should be dealt with by each
+ // ScriptInterpreter. For now, we just replace dots with
+ // underscores, but if we ever support anything other than
+ // Python we will need to rework this
+ std::replace(module_basename.begin(), module_basename.end(), '.',
+ '_');
+ std::replace(module_basename.begin(), module_basename.end(), ' ',
+ '_');
+ std::replace(module_basename.begin(), module_basename.end(), '-',
+ '_');
+ ScriptInterpreter *script_interpreter =
+ target->GetDebugger().GetScriptInterpreter();
+ if (script_interpreter &&
+ script_interpreter->IsReservedWord(module_basename.c_str())) {
+ module_basename.insert(module_basename.begin(), '_');
+ was_keyword = true;
+ }
- StreamString path_string;
- StreamString original_path_string;
- // for OSX we are going to be in
- // .dSYM/Contents/Resources/DWARF/<basename> let us go to
- // .dSYM/Contents/Resources/Python/<basename>.py and see if the
- // file exists
- path_string.Printf("%s/../Python/%s.py",
- symfile_spec.GetDirectory().GetCString(),
- module_basename.c_str());
- original_path_string.Printf(
- "%s/../Python/%s.py",
- symfile_spec.GetDirectory().GetCString(),
- original_module_basename.c_str());
- FileSpec script_fspec(path_string.GetString());
- FileSystem::Instance().Resolve(script_fspec);
- FileSpec orig_script_fspec(original_path_string.GetString());
- FileSystem::Instance().Resolve(orig_script_fspec);
-
- // if we did some replacements of reserved characters, and a
- // file with the untampered name exists, then warn the user
- // that the file as-is shall not be loaded
- if (feedback_stream) {
- if (module_basename != original_module_basename &&
- FileSystem::Instance().Exists(orig_script_fspec)) {
- const char *reason_for_complaint =
- was_keyword ? "conflicts with a keyword"
- : "contains reserved characters";
- if (FileSystem::Instance().Exists(script_fspec))
- feedback_stream->Printf(
- "warning: the symbol file '%s' contains a debug "
- "script. However, its name"
- " '%s' %s and as such cannot be loaded. LLDB will"
- " load '%s' instead. Consider removing the file with "
- "the malformed name to"
- " eliminate this warning.\n",
- symfile_spec.GetPath().c_str(),
- original_path_string.GetData(), reason_for_complaint,
- path_string.GetData());
- else
- feedback_stream->Printf(
- "warning: the symbol file '%s' contains a debug "
- "script. However, its name"
- " %s and as such cannot be loaded. If you intend"
- " to have this script loaded, please rename '%s' to "
- "'%s' and retry.\n",
- symfile_spec.GetPath().c_str(), reason_for_complaint,
- original_path_string.GetData(),
- path_string.GetData());
- }
+ StreamString path_string;
+ StreamString original_path_string;
+ // for OSX we are going to be in
+ // .dSYM/Contents/Resources/DWARF/<basename> let us go to
+ // .dSYM/Contents/Resources/Python/<basename>.py and see if the
+ // file exists
+ path_string.Printf("%s/../Python/%s.py",
+ symfile_spec.GetDirectory().GetCString(),
+ module_basename.c_str());
+ original_path_string.Printf(
+ "%s/../Python/%s.py",
+ symfile_spec.GetDirectory().GetCString(),
+ original_module_basename.c_str());
+ FileSpec script_fspec(path_string.GetString());
+ FileSystem::Instance().Resolve(script_fspec);
+ FileSpec orig_script_fspec(original_path_string.GetString());
+ FileSystem::Instance().Resolve(orig_script_fspec);
+
+ // if we did some replacements of reserved characters, and a
+ // file with the untampered name exists, then warn the user
+ // that the file as-is shall not be loaded
+ if (feedback_stream) {
+ if (module_basename != original_module_basename &&
+ FileSystem::Instance().Exists(orig_script_fspec)) {
+ const char *reason_for_complaint =
+ was_keyword ? "conflicts with a keyword"
+ : "contains reserved characters";
+ if (FileSystem::Instance().Exists(script_fspec))
+ feedback_stream->Printf(
+ "warning: the symbol file '%s' contains a debug "
+ "script. However, its name"
+ " '%s' %s and as such cannot be loaded. LLDB will"
+ " load '%s' instead. Consider removing the file with "
+ "the malformed name to"
+ " eliminate this warning.\n",
+ symfile_spec.GetPath().c_str(),
+ original_path_string.GetData(), reason_for_complaint,
+ path_string.GetData());
+ else
+ feedback_stream->Printf(
+ "warning: the symbol file '%s' contains a debug "
+ "script. However, its name"
+ " %s and as such cannot be loaded. If you intend"
+ " to have this script loaded, please rename '%s' to "
+ "'%s' and retry.\n",
+ symfile_spec.GetPath().c_str(), reason_for_complaint,
+ original_path_string.GetData(), path_string.GetData());
}
+ }
- if (FileSystem::Instance().Exists(script_fspec)) {
- file_list.Append(script_fspec);
- break;
- }
+ if (FileSystem::Instance().Exists(script_fspec)) {
+ file_list.Append(script_fspec);
+ break;
+ }
- // If we didn't find the python file, then keep stripping the
- // extensions and try again
- ConstString filename_no_extension(
- module_spec.GetFileNameStrippingExtension());
- if (module_spec.GetFilename() == filename_no_extension)
- break;
+ // If we didn't find the python file, then keep stripping the
+ // extensions and try again
+ ConstString filename_no_extension(
+ module_spec.GetFileNameStrippingExtension());
+ if (module_spec.GetFilename() == filename_no_extension)
+ break;
- module_spec.GetFilename() = filename_no_extension;
- }
+ module_spec.GetFilename() = filename_no_extension;
}
}
}
diff --git a/lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp b/lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp
index b7bfc2b3b9d..11e3fcc8043 100644
--- a/lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp
+++ b/lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp
@@ -3749,10 +3749,8 @@ SymbolFileDWARFDebugMap *SymbolFileDWARF::GetDebugMapSymfile() {
if (m_debug_map_symfile == nullptr && !m_debug_map_module_wp.expired()) {
lldb::ModuleSP module_sp(m_debug_map_module_wp.lock());
if (module_sp) {
- SymbolVendor *sym_vendor = module_sp->GetSymbolVendor();
- if (sym_vendor)
- m_debug_map_symfile =
- (SymbolFileDWARFDebugMap *)sym_vendor->GetSymbolFile();
+ m_debug_map_symfile =
+ (SymbolFileDWARFDebugMap *)module_sp->GetSymbolFile();
}
}
return m_debug_map_symfile;
diff --git a/lldb/source/Symbol/Block.cpp b/lldb/source/Symbol/Block.cpp
index 523539a4ded..e9044145884 100644
--- a/lldb/source/Symbol/Block.cpp
+++ b/lldb/source/Symbol/Block.cpp
@@ -464,8 +464,7 @@ uint32_t Block::AppendVariables(bool can_create, bool get_parent_variables,
SymbolFile *Block::GetSymbolFile() {
if (ModuleSP module_sp = CalculateSymbolContextModule())
- if (SymbolVendor *sym_vendor = module_sp->GetSymbolVendor())
- return sym_vendor->GetSymbolFile();
+ return module_sp->GetSymbolFile();
return nullptr;
}
diff --git a/lldb/source/Symbol/Function.cpp b/lldb/source/Symbol/Function.cpp
index 951392c1f1b..49b2c9b268e 100644
--- a/lldb/source/Symbol/Function.cpp
+++ b/lldb/source/Symbol/Function.cpp
@@ -428,14 +428,8 @@ CompilerDeclContext Function::GetDeclContext() {
ModuleSP module_sp = CalculateSymbolContextModule();
if (module_sp) {
- SymbolVendor *sym_vendor = module_sp->GetSymbolVendor();
-
- if (sym_vendor) {
- SymbolFile *sym_file = sym_vendor->GetSymbolFile();
-
- if (sym_file)
- return sym_file->GetDeclContextForUID(GetID());
- }
+ if (SymbolFile *sym_file = module_sp->GetSymbolFile())
+ return sym_file->GetDeclContextForUID(GetID());
}
return CompilerDeclContext();
}
@@ -449,12 +443,7 @@ Type *Function::GetType() {
if (!sc.module_sp)
return nullptr;
- SymbolVendor *sym_vendor = sc.module_sp->GetSymbolVendor();
-
- if (sym_vendor == nullptr)
- return nullptr;
-
- SymbolFile *sym_file = sym_vendor->GetSymbolFile();
+ SymbolFile *sym_file = sc.module_sp->GetSymbolFile();
if (sym_file == nullptr)
return nullptr;
diff --git a/lldb/source/Symbol/UnwindTable.cpp b/lldb/source/Symbol/UnwindTable.cpp
index a8f451dc464..7566d8027f0 100644
--- a/lldb/source/Symbol/UnwindTable.cpp
+++ b/lldb/source/Symbol/UnwindTable.cpp
@@ -182,11 +182,7 @@ ArmUnwindInfo *UnwindTable::GetArmUnwindInfo() {
return m_arm_unwind_up.get();
}
-SymbolFile *UnwindTable::GetSymbolFile() {
- if (SymbolVendor *vendor = m_module.GetSymbolVendor())
- return vendor->GetSymbolFile();
- return nullptr;
-}
+SymbolFile *UnwindTable::GetSymbolFile() { return m_module.GetSymbolFile(); }
ArchSpec UnwindTable::GetArchitecture() { return m_module.GetArchitecture(); }
OpenPOWER on IntegriCloud