crashlog.py catches every exception in order to format them. This results in both the exception name as well as the backtrace getting swallowed.
Here's an example of the current output:
error: python exception: in method 'SBTarget_ResolveLoadAddress', argument 2 of type 'lldb::addr_t'
Compare this to the output without the custom exception handling:
Traceback (most recent call last): File "/Users/jonas/llvm/build-ra/lib/python3.9/site-packages/lldb/macosx/crashlog.py", line 929, in __call__ SymbolicateCrashLogs(debugger, shlex.split(command)) File "/Users/jonas/llvm/build-ra/lib/python3.9/site-packages/lldb/macosx/crashlog.py", line 1239, in SymbolicateCrashLogs SymbolicateCrashLog(crash_log, options) File "/Users/jonas/llvm/build-ra/lib/python3.9/site-packages/lldb/macosx/crashlog.py", line 1006, in SymbolicateCrashLog thread.dump_symbolicated(crash_log, options) File "/Users/jonas/llvm/build-ra/lib/python3.9/site-packages/lldb/macosx/crashlog.py", line 124, in dump_symbolicated symbolicated_frame_addresses = crash_log.symbolicate( File "/Users/jonas/llvm/build-ra/lib/python3.9/site-packages/lldb/utils/symbolication.py", line 540, in symbolicate if symbolicated_address.symbolicate(verbose): File "/Users/jonas/llvm/build-ra/lib/python3.9/site-packages/lldb/utils/symbolication.py", line 98, in symbolicate sym_ctx = self.get_symbol_context() File "/Users/jonas/llvm/build-ra/lib/python3.9/site-packages/lldb/utils/symbolication.py", line 77, in get_symbol_context sb_addr = self.resolve_addr() File "/Users/jonas/llvm/build-ra/lib/python3.9/site-packages/lldb/utils/symbolication.py", line 69, in resolve_addr self.so_addr = self.target.ResolveLoadAddress(self.load_addr) File "/Users/jonas/llvm/build-ra/lib/python3.9/site-packages/lldb/__init__.py", line 10675, in ResolveLoadAddress return _lldb.SBTarget_ResolveLoadAddress(self, vm_addr) OverflowError: in method 'SBTarget_ResolveLoadAddress', argument 2 of type 'lldb::addr_t'
This patch removes the custom exception handling and lets LLDB deal with it instead.
What about printing the exception backtrace and exiting cleaning instead of crashing ?