[Lldb-commits] [lldb] r179633 - Add warning messages for the cases where the inferior process shared cache

Jason Molenda jmolenda at apple.com
Tue Apr 16 14:42:58 PDT 2013


Author: jmolenda
Date: Tue Apr 16 16:42:58 2013
New Revision: 179633

URL: http://llvm.org/viewvc/llvm-project?rev=179633&view=rev
Log:
Add warning messages for the cases where the inferior process shared cache
differs from lldb's own shared cache, and where the inferior process shared
cache does not match up with the on-disk shared cache file.

Simplify the code where lldb gets its own shared cache uuid a little bit.

Modified:
    lldb/trunk/source/Plugins/ObjectFile/Mach-O/ObjectFileMachO.cpp

Modified: lldb/trunk/source/Plugins/ObjectFile/Mach-O/ObjectFileMachO.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Plugins/ObjectFile/Mach-O/ObjectFileMachO.cpp?rev=179633&r1=179632&r2=179633&view=diff
==============================================================================
--- lldb/trunk/source/Plugins/ObjectFile/Mach-O/ObjectFileMachO.cpp (original)
+++ lldb/trunk/source/Plugins/ObjectFile/Mach-O/ObjectFileMachO.cpp Tue Apr 16 16:42:58 2013
@@ -1395,6 +1395,10 @@ ObjectFileMachO::ParseSymtab (bool minim
                     if (lldb_shared_cache.IsValid() && process_shared_cache.IsValid() && lldb_shared_cache != process_shared_cache)
                     {
                             use_lldb_cache = false;
+                            ModuleSP module_sp (GetModule());
+                            if (module_sp)
+                                module_sp->ReportWarning ("shared cache in process does not match lldb's own shared cache, startup will be slow.");
+
                     }
 
                     PlatformSP platform_sp (target.GetPlatform());
@@ -1722,6 +1726,9 @@ ObjectFileMachO::ParseSymtab (bool minim
                         // The on-disk dyld_shared_cache file is not the same as the one in this
                         // process' memory, don't use it.
                         uuid_match = false;
+                        ModuleSP module_sp (GetModule());
+                        if (module_sp)
+                            module_sp->ReportWarning ("process shared cache does not match on-disk dyld_shared_cache file, some symbol names will be missing.");
                     }
                 }
 
@@ -4035,12 +4042,10 @@ ObjectFileMachO::GetLLDBSharedCacheUUID
         uint8_t *dyld_all_image_infos_address = dyld_get_all_image_infos();
         if (dyld_all_image_infos_address)
         {
-            uint32_t version;
-            memcpy (&version, dyld_all_image_infos_address, 4);
-            if (version >= 13)
+            uint32_t *version = (uint32_t*) dyld_all_image_infos_address;              // version <mach-o/dyld_images.h>
+            if (*version >= 13)
             {
-                uint8_t *sharedCacheUUID_address = 0;
-                sharedCacheUUID_address = dyld_all_image_infos_address + 84;  // sharedCacheUUID <mach-o/dyld_images.h>
+                uuid_t *sharedCacheUUID_address = (uuid_t*) dyld_all_image_infos_address + 84; // sharedCacheUUID <mach-o/dyld_images.h>
                 uuid.SetBytes (sharedCacheUUID_address);
             }
         }





More information about the lldb-commits mailing list