Author: Med Ismail Bennani
Date: 2023-08-18T20:50:39+01:00
New Revision: 9a44eedb842d03b0e4d24f8dcc57a49e1a9cc1ac

URL: 
https://github.com/llvm/llvm-project/commit/9a44eedb842d03b0e4d24f8dcc57a49e1a9cc1ac
DIFF: 
https://github.com/llvm/llvm-project/commit/9a44eedb842d03b0e4d24f8dcc57a49e1a9cc1ac.diff

LOG: [lldb/crashlog] Skip non-crashed threads in batch mode

When using the `crashlog` command in batch mode, most users only care
about the crashed thread and end up having to scroll past all the
non-crashed threads, which is not a good user experience.

Now that `-c|--crashed-only` is set by default, we should also apply
that behavior for batch mode: Only the crashed thread and "Application
Specific Backtrace" threads will be shown to the user in batch mode.

The user will still have the ability to show all the threads if they use
`--no-crashed-only` which will parse the symbols from the report, or
with `-a|--load-all-images` which will fetch binaries and debug info
from the build record and symbolicate every thread.

rdar://106329893

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

Signed-off-by: Med Ismail Bennani <ism...@bennani.ma>

Added: 
    

Modified: 
    lldb/examples/python/crashlog.py

Removed: 
    


################################################################################
diff  --git a/lldb/examples/python/crashlog.py 
b/lldb/examples/python/crashlog.py
index 080062be5374dc..5f6b84ff795eb8 100755
--- a/lldb/examples/python/crashlog.py
+++ b/lldb/examples/python/crashlog.py
@@ -949,6 +949,7 @@ def parse(self):
                                 self.thread.reason += (
                                     " (%s)" % 
self.crashlog.thread_exception_data
                                 )
+                            self.thread.crashed = True
                         if self.app_specific_backtrace:
                             self.crashlog.backtraces.append(self.thread)
                         else:
@@ -1437,6 +1438,10 @@ def add_module(image, target, obj_dir):
             print()
 
     for thread in crash_log.threads:
+        if options.crashed_only and not (
+            thread.crashed or thread.app_specific_backtrace
+        ):
+            continue
         thread.dump_symbolicated(crash_log, options)
         print()
 


        
_______________________________________________
lldb-commits mailing list
lldb-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits

Reply via email to