summaryrefslogtreecommitdiffstats
path: root/lldb/source/Host/macosx/Symbols.cpp
diff options
context:
space:
mode:
authorJim Ingham <jingham@apple.com>2015-07-24 23:40:32 +0000
committerJim Ingham <jingham@apple.com>2015-07-24 23:40:32 +0000
commit39497e9f5bd9c82c15b4d1798976e5daad5c7767 (patch)
treeccbbeba5cd22403129e25d28dbc6ee03f860c648 /lldb/source/Host/macosx/Symbols.cpp
parent88c05f54a0708c5a41b965091758cad0f69a84f4 (diff)
downloadbcm5719-llvm-39497e9f5bd9c82c15b4d1798976e5daad5c7767.tar.gz
bcm5719-llvm-39497e9f5bd9c82c15b4d1798976e5daad5c7767.zip
Make sure we resolve ~ in paths coming from the plist in a dSYM before adding them
to the path remappings. Also don't add the paths to the path mapping when DebugSymbols tells up about files, since we'll just do that again when we read in the dSYM. <rdar://problem/21986208> llvm-svn: 243181
Diffstat (limited to 'lldb/source/Host/macosx/Symbols.cpp')
-rw-r--r--lldb/source/Host/macosx/Symbols.cpp37
1 files changed, 7 insertions, 30 deletions
diff --git a/lldb/source/Host/macosx/Symbols.cpp b/lldb/source/Host/macosx/Symbols.cpp
index db05b1be765..a86a7739f9d 100644
--- a/lldb/source/Host/macosx/Symbols.cpp
+++ b/lldb/source/Host/macosx/Symbols.cpp
@@ -133,39 +133,16 @@ LocateMacOSXFilesUsingDebugSymbols
}
}
- CFCReleaser<CFDictionaryRef> dict(::DBGCopyDSYMPropertyLists (dsym_url.get()));
- CFDictionaryRef uuid_dict = NULL;
- if (dict.get())
- {
- CFCString uuid_cfstr (uuid->GetAsString().c_str());
- uuid_dict = static_cast<CFDictionaryRef>(::CFDictionaryGetValue (dict.get(), uuid_cfstr.get()));
- if (uuid_dict)
- {
-
- CFStringRef actual_src_cfpath = static_cast<CFStringRef>(::CFDictionaryGetValue (uuid_dict, CFSTR("DBGSourcePath")));
- if (actual_src_cfpath)
- {
- CFStringRef build_src_cfpath = static_cast<CFStringRef>(::CFDictionaryGetValue (uuid_dict, CFSTR("DBGBuildSourcePath")));
- if (build_src_cfpath)
- {
- char actual_src_path[PATH_MAX];
- char build_src_path[PATH_MAX];
- ::CFStringGetFileSystemRepresentation (actual_src_cfpath, actual_src_path, sizeof(actual_src_path));
- ::CFStringGetFileSystemRepresentation (build_src_cfpath, build_src_path, sizeof(build_src_path));
- if (actual_src_path[0] == '~')
- {
- FileSpec resolved_source_path(actual_src_path, true);
- resolved_source_path.GetPath(actual_src_path, sizeof(actual_src_path));
- }
- module_spec.GetSourceMappingList().Append (ConstString(build_src_path), ConstString(actual_src_path), true);
- }
- }
- }
- }
-
if (out_exec_fspec)
{
bool success = false;
+ CFCReleaser<CFDictionaryRef> dict(::DBGCopyDSYMPropertyLists (dsym_url.get()));
+ CFDictionaryRef uuid_dict = NULL;
+ if (dict.get())
+ {
+ CFCString uuid_cfstr (uuid->GetAsString().c_str());
+ uuid_dict = static_cast<CFDictionaryRef>(::CFDictionaryGetValue (dict.get(), uuid_cfstr.get()));
+ }
if (uuid_dict)
{
CFStringRef exec_cf_path = static_cast<CFStringRef>(::CFDictionaryGetValue (uuid_dict, CFSTR("DBGSymbolRichExecutable")));
OpenPOWER on IntegriCloud