[Lldb-commits] [lldb] 355be8c - [lldb/crashlog] Skip null image dsym fetching on interactive mode

Med Ismail Bennani via lldb-commits lldb-commits at lists.llvm.org
Tue Aug 9 21:02:11 PDT 2022


Author: Med Ismail Bennani
Date: 2022-08-09T21:01:37-07:00
New Revision: 355be8cf801603756520cf5d9b4b5eaf9d1b2e77

URL: https://github.com/llvm/llvm-project/commit/355be8cf801603756520cf5d9b4b5eaf9d1b2e77
DIFF: https://github.com/llvm/llvm-project/commit/355be8cf801603756520cf5d9b4b5eaf9d1b2e77.diff

LOG: [lldb/crashlog] Skip null image dsym fetching on interactive mode

Sometimes, it can happen that a crash report has null images in its list
of used binaries. This manifests like such:

```
    0x0 - 0xffffffffffffffff ??? (*) <00000000-0000-0000-0000-000000000000> ???
```

When fetching debug symbols to symbolicate the crashlog stackframe,
having null images causes `dsymForUUID` to hang for few seconds.

This patch addresses that by skipping null images from being load by the
scripted process.

rdar://97419487

Differential Revision: https://reviews.llvm.org/D131038

Signed-off-by: Med Ismail Bennani <medismail.bennani at gmail.com>

Added: 
    

Modified: 
    lldb/examples/python/scripted_process/crashlog_scripted_process.py
    lldb/test/Shell/ScriptInterpreter/Python/Crashlog/Inputs/interactive_crashlog/multithread-test.ips

Removed: 
    


################################################################################
diff  --git a/lldb/examples/python/scripted_process/crashlog_scripted_process.py b/lldb/examples/python/scripted_process/crashlog_scripted_process.py
index 6e7db946a0188..3a5b175dce861 100644
--- a/lldb/examples/python/scripted_process/crashlog_scripted_process.py
+++ b/lldb/examples/python/scripted_process/crashlog_scripted_process.py
@@ -1,4 +1,4 @@
-import os,json,struct,signal
+import os,json,struct,signal,uuid
 
 from typing import Any, Dict
 
@@ -25,8 +25,11 @@ def load_images(self, images):
             if images:
                 for image in images:
                     if image not in self.loaded_images:
+                        if image.uuid == uuid.UUID(int=0):
+                            continue
                         err = image.add_module(self.target)
                         if err:
+                            # Append to SBCommandReturnObject
                             print(err)
                         else:
                             self.loaded_images.append(image)

diff  --git a/lldb/test/Shell/ScriptInterpreter/Python/Crashlog/Inputs/interactive_crashlog/multithread-test.ips b/lldb/test/Shell/ScriptInterpreter/Python/Crashlog/Inputs/interactive_crashlog/multithread-test.ips
index 343b30fb99c16..33153c81f37f0 100644
--- a/lldb/test/Shell/ScriptInterpreter/Python/Crashlog/Inputs/interactive_crashlog/multithread-test.ips
+++ b/lldb/test/Shell/ScriptInterpreter/Python/Crashlog/Inputs/interactive_crashlog/multithread-test.ips
@@ -472,6 +472,12 @@
       "size": 528384,
       "source": "P",
       "uuid": "b8f1c3ed-9048-34a6-8070-6c18d4ade541"
+    },
+    {
+      "size" : 0,
+      "source" : "A",
+      "base" : 0,
+      "uuid" : "00000000-0000-0000-0000-000000000000"
     }
   ],
   "userID": 501,
@@ -480,4 +486,4 @@
   "vmSummary": "ReadOnly portion of Libraries: Total=762.9M resident=0K(0%) swapped_out_or_unallocated=762.9M(100%)\nWritable regions: Total=538.2M written=0K(0%) resident=0K(0%) swapped_out=0K(0%) unallocated=538.2M(100%)\n\n                                VIRTUAL   REGION \nREGION TYPE                        SIZE    COUNT (non-coalesced) \n===========                     =======  ======= \nKernel Alloc Once                   32K        1 \nMALLOC                           145.2M       12 \nMALLOC guard page                   96K        5 \nMALLOC_NANO (reserved)           384.0M        1         reserved VM address space (unallocated)\nSTACK GUARD                       56.0M        3 \nStack                             9264K        3 \n__AUTH                              46K       11 \n__AUTH_CONST                        70K       38 \n__DATA                             169K       36 \n__DATA_CONST                       187K       40 \n__DATA_DIRTY                        78K       22 \n__LINKEDIT                       758.0M        2 \n__OBJC_CONST                        11K        5 \n__OBJC_RO                         64.7M        1 \n__OBJC_RW                         1971K        1 \n__TEXT                            5076K       42 \ndyld private memory                256K        1 \nshared memory                       64K        3 \n===========                     =======  ======= \nTOTAL                              1.4G      227 \nTOTAL, minus reserved VM space     1.0G      227 \n",
   "vmregioninfo": "0 is not in any region.  Bytes before following region: 4310450176\n      REGION TYPE                    START - END         [ VSIZE] PRT/MAX SHRMOD  REGION DETAIL\n      UNUSED SPACE AT START\n--->  \n      __TEXT                      100ec4000-100ec8000    [   16K] r-x/r-x SM=COW  ...tithread-test",
   "wakeTime": 214
-}
\ No newline at end of file
+}


        


More information about the lldb-commits mailing list