diff options
author | Jim Ingham <jingham@apple.com> | 2015-07-24 23:40:32 +0000 |
---|---|---|
committer | Jim Ingham <jingham@apple.com> | 2015-07-24 23:40:32 +0000 |
commit | 39497e9f5bd9c82c15b4d1798976e5daad5c7767 (patch) | |
tree | ccbbeba5cd22403129e25d28dbc6ee03f860c648 /lldb/source/Host/macosx/Symbols.cpp | |
parent | 88c05f54a0708c5a41b965091758cad0f69a84f4 (diff) | |
download | bcm5719-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.cpp | 37 |
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"))); |