Author: Jonas Devlieghere Date: 2022-02-14T21:24:02-08:00 New Revision: 0f29319e56459eb26a3bf7fb86e45e63f43a168e
URL: https://github.com/llvm/llvm-project/commit/0f29319e56459eb26a3bf7fb86e45e63f43a168e DIFF: https://github.com/llvm/llvm-project/commit/0f29319e56459eb26a3bf7fb86e45e63f43a168e.diff LOG: [lldb] Determine the main binary in JSON crashlogs The symbolicator assumes that the first image in the image list is the main image. That isn't always the case. For JSON crashlogs we can use the procName to move the main image to the front of the list. rdar://83907760 Added: Modified: lldb/examples/python/crashlog.py Removed: ################################################################################ diff --git a/lldb/examples/python/crashlog.py b/lldb/examples/python/crashlog.py index 63be06662562a..bc57a275ce744 100755 --- a/lldb/examples/python/crashlog.py +++ b/lldb/examples/python/crashlog.py @@ -351,6 +351,12 @@ def dump(self): for image in self.images: image.dump(' ') + def set_main_image(self, identifier): + for i, image in enumerate(self.images): + if image.identifier == identifier: + self.images.insert(0, self.images.pop(i)) + break + def find_image_with_identifier(self, identifier): for image in self.images: if image.identifier == identifier: @@ -435,6 +441,7 @@ def parse(self): try: self.parse_process_info(self.data) self.parse_images(self.data['usedImages']) + self.parse_main_image(self.data) self.parse_threads(self.data['threads']) self.parse_errors(self.data) thread = self.crashlog.threads[self.crashlog.crashed_thread_idx] @@ -485,6 +492,11 @@ def parse_images(self, json_images): self.crashlog.images.append(darwin_image) idx += 1 + def parse_main_image(self, json_data): + if 'procName' in json_data: + proc_name = json_data['procName'] + self.crashlog.set_main_image(proc_name) + def parse_frames(self, thread, json_frames): idx = 0 for json_frame in json_frames: _______________________________________________ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits