[lldb] Support "absolute memory address" images in crashlog.py
authorJonas Devlieghere <jonas@devlieghere.com>
Mon, 19 Apr 2021 17:20:13 +0000 (10:20 -0700)
committerJonas Devlieghere <jonas@devlieghere.com>
Mon, 19 Apr 2021 17:27:11 +0000 (10:27 -0700)
The binary image list contains the following entry when a frame is not
found in any know binary image:

  {
    "size" : 0,
    "source" : "A",
    "base" : 0,
    "uuid" : "00000000-0000-0000-0000-000000000000"
  }

Note that this object is missing the name and path keys. This patch
makes the JSON parser resilient against their absence.

lldb/examples/python/crashlog.py

index afae31f..1f26739 100755 (executable)
@@ -452,9 +452,9 @@ class JSONCrashLogParser:
             img_uuid = uuid.UUID(json_image['uuid'])
             low = int(json_image['base'])
             high = int(0)
-            name = json_image['name']
-            path = json_image['path']
-            version = ""
+            name = json_image['name'] if 'name' in json_image else ''
+            path = json_image['path'] if 'path' in json_image else ''
+            version = ''
             darwin_image = self.crashlog.DarwinImage(low, high, name, version,
                                                      img_uuid, path,
                                                      self.verbose)