Author: jingham
Date: Fri Jul 24 18:40:32 2015
New Revision: 243181

URL: http://llvm.org/viewvc/llvm-project?rev=243181&view=rev
Log:
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>

Modified:
    lldb/trunk/source/Host/macosx/Symbols.cpp
    lldb/trunk/source/Plugins/SymbolVendor/MacOSX/SymbolVendorMacOSX.cpp

Modified: lldb/trunk/source/Host/macosx/Symbols.cpp
URL: 
http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Host/macosx/Symbols.cpp?rev=243181&r1=243180&r2=243181&view=diff
==============================================================================
--- lldb/trunk/source/Host/macosx/Symbols.cpp (original)
+++ lldb/trunk/source/Host/macosx/Symbols.cpp Fri Jul 24 18:40:32 2015
@@ -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")));

Modified: lldb/trunk/source/Plugins/SymbolVendor/MacOSX/SymbolVendorMacOSX.cpp
URL: 
http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Plugins/SymbolVendor/MacOSX/SymbolVendorMacOSX.cpp?rev=243181&r1=243180&r2=243181&view=diff
==============================================================================
--- lldb/trunk/source/Plugins/SymbolVendor/MacOSX/SymbolVendorMacOSX.cpp 
(original)
+++ lldb/trunk/source/Plugins/SymbolVendor/MacOSX/SymbolVendorMacOSX.cpp Fri 
Jul 24 18:40:32 2015
@@ -204,6 +204,11 @@ SymbolVendorMacOSX::CreateInstance (cons
                                             
plist.GetValueAsString("DBGSourcePath", DBGSourcePath);
                                             if (!DBGBuildSourcePath.empty() && 
!DBGSourcePath.empty())
                                             {
+                                                if (DBGSourcePath[0] == '~')
+                                                {
+                                                    FileSpec 
resolved_source_path(DBGSourcePath.c_str(), true);
+                                                    DBGSourcePath = 
resolved_source_path.GetPath();
+                                                }
                                                 
module_sp->GetSourceMappingList().Append (ConstString(DBGBuildSourcePath), 
ConstString(DBGSourcePath), true);
                                             }
                                         }


_______________________________________________
lldb-commits mailing list
lldb-commits@cs.uiuc.edu
http://lists.cs.uiuc.edu/mailman/listinfo/lldb-commits

Reply via email to