summaryrefslogtreecommitdiffstats
path: root/lldb/source/Host/common
diff options
context:
space:
mode:
authorPavel Labath <labath@google.com>2015-10-01 09:03:33 +0000
committerPavel Labath <labath@google.com>2015-10-01 09:03:33 +0000
commit746ffd6980da1eba5a63816f4291d7ab73dd1ca4 (patch)
treeedf694abbb922228e32ba0fe593cfea1e0fe1e75 /lldb/source/Host/common
parent2bfb7cbddbb618c6ce493b292f63c6453d2458c5 (diff)
downloadbcm5719-llvm-746ffd6980da1eba5a63816f4291d7ab73dd1ca4.tar.gz
bcm5719-llvm-746ffd6980da1eba5a63816f4291d7ab73dd1ca4.zip
Revert "Fixing a subtle issue on Mac OS X systems with dSYMs..."
This reverts commit r248985, as it was breaking all remote expression-evaluating tests (on android at least). llvm-svn: 248995
Diffstat (limited to 'lldb/source/Host/common')
-rw-r--r--lldb/source/Host/common/Symbols.cpp25
1 files changed, 11 insertions, 14 deletions
diff --git a/lldb/source/Host/common/Symbols.cpp b/lldb/source/Host/common/Symbols.cpp
index 381fba266e1..76e28449f96 100644
--- a/lldb/source/Host/common/Symbols.cpp
+++ b/lldb/source/Host/common/Symbols.cpp
@@ -38,7 +38,8 @@ int
LocateMacOSXFilesUsingDebugSymbols
(
const ModuleSpec &module_spec,
- ModuleSpec &return_module_spec
+ FileSpec *out_exec_fspec, // If non-NULL, try and find the executable
+ FileSpec *out_dsym_fspec // If non-NULL try and find the debug symbol file
);
#else
@@ -47,7 +48,8 @@ int
LocateMacOSXFilesUsingDebugSymbols
(
const ModuleSpec &module_spec,
- ModuleSpec &return_module_spec
+ FileSpec *out_exec_fspec, // If non-NULL, try and find the executable
+ FileSpec *out_dsym_fspec // If non-NULL try and find the debug symbol file
) {
// Cannot find MacOSX files using debug symbols on non MacOSX.
return 0;
@@ -176,25 +178,19 @@ LocateExecutableSymbolFileDsym (const ModuleSpec &module_spec)
(const void*)uuid);
FileSpec symbol_fspec;
- ModuleSpec dsym_module_spec;
// First try and find the dSYM in the same directory as the executable or in
// an appropriate parent directory
if (LocateDSYMInVincinityOfExecutable (module_spec, symbol_fspec) == false)
{
// We failed to easily find the dSYM above, so use DebugSymbols
- LocateMacOSXFilesUsingDebugSymbols (module_spec, dsym_module_spec);
+ LocateMacOSXFilesUsingDebugSymbols (module_spec, NULL, &symbol_fspec);
}
- else
- {
- dsym_module_spec.GetSymbolFileSpec() = symbol_fspec;
- }
- return dsym_module_spec.GetSymbolFileSpec();
+ return symbol_fspec;
}
-ModuleSpec
+FileSpec
Symbols::LocateExecutableObjectFile (const ModuleSpec &module_spec)
{
- ModuleSpec result = module_spec;
const FileSpec *exec_fspec = module_spec.GetFileSpecPtr();
const ArchSpec *arch = module_spec.GetArchitecturePtr();
const UUID *uuid = module_spec.GetUUIDPtr();
@@ -204,19 +200,20 @@ Symbols::LocateExecutableObjectFile (const ModuleSpec &module_spec)
arch ? arch->GetArchitectureName() : "<NULL>",
(const void*)uuid);
+ FileSpec objfile_fspec;
ModuleSpecList module_specs;
ModuleSpec matched_module_spec;
if (exec_fspec &&
ObjectFile::GetModuleSpecifications(*exec_fspec, 0, 0, module_specs) &&
module_specs.FindMatchingModuleSpec(module_spec, matched_module_spec))
{
- result.GetFileSpec() = exec_fspec;
+ objfile_fspec = exec_fspec;
}
else
{
- LocateMacOSXFilesUsingDebugSymbols (module_spec, result);
+ LocateMacOSXFilesUsingDebugSymbols (module_spec, &objfile_fspec, NULL);
}
- return result;
+ return objfile_fspec;
}
FileSpec
OpenPOWER on IntegriCloud