aboutsummaryrefslogtreecommitdiff
path: root/lldb/examples/python/crashlog.py
diff options
context:
space:
mode:
authorJonas Devlieghere <jonas@devlieghere.com>2022-05-13 15:58:56 -0700
committerJonas Devlieghere <jonas@devlieghere.com>2022-05-14 08:58:56 -0700
commitae016e4f7c856983420544794c48c4a2feb6c79a (patch)
treee3d9f9cda759f69cf2d405b3e934bec80e2df74c /lldb/examples/python/crashlog.py
parent447c920a8adfc07f46f61b2a5099ea5b50628645 (diff)
downloadllvm-ae016e4f7c856983420544794c48c4a2feb6c79a.zip
llvm-ae016e4f7c856983420544794c48c4a2feb6c79a.tar.gz
llvm-ae016e4f7c856983420544794c48c4a2feb6c79a.tar.bz2
[lldb] Don't swallow crashlog exceptions
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 "[...]/site-packages/lldb/macosx/crashlog.py", line 929, in __call__ SymbolicateCrashLogs(debugger, shlex.split(command)) File "[...]/site-packages/lldb/macosx/crashlog.py", line 1239, in SymbolicateCrashLogs SymbolicateCrashLog(crash_log, options) File "[...]/site-packages/lldb/macosx/crashlog.py", line 1006, in SymbolicateCrashLog thread.dump_symbolicated(crash_log, options) File "[...]/site-packages/lldb/macosx/crashlog.py", line 124, in dump_symbolicated symbolicated_frame_addresses = crash_log.symbolicate( File "[...]/site-packages/lldb/utils/symbolication.py", line 540, in symbolicate if symbolicated_address.symbolicate(verbose): File "[...]/site-packages/lldb/utils/symbolication.py", line 98, in symbolicate sym_ctx = self.get_symbol_context() File "[...]/site-packages/lldb/utils/symbolication.py", line 77, in get_symbol_context sb_addr = self.resolve_addr() File "[...]/site-packages/lldb/utils/symbolication.py", line 69, in resolve_addr self.so_addr = self.target.ResolveLoadAddress(self.load_addr) File "[...]/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 or the default exception handler deal with it instead. Differential revision: https://reviews.llvm.org/D125589
Diffstat (limited to 'lldb/examples/python/crashlog.py')
-rwxr-xr-xlldb/examples/python/crashlog.py11
1 files changed, 2 insertions, 9 deletions
diff --git a/lldb/examples/python/crashlog.py b/lldb/examples/python/crashlog.py
index 33a6455..49c9a92 100755
--- a/lldb/examples/python/crashlog.py
+++ b/lldb/examples/python/crashlog.py
@@ -925,10 +925,7 @@ class Symbolicate:
pass
def __call__(self, debugger, command, exe_ctx, result):
- try:
- SymbolicateCrashLogs(debugger, shlex.split(command))
- except Exception as e:
- result.PutCString("error: python exception: %s" % e)
+ SymbolicateCrashLogs(debugger, shlex.split(command))
def get_short_help(self):
return "Symbolicate one or more darwin crash log files."
@@ -1020,11 +1017,7 @@ def load_crashlog_in_scripted_process(debugger, crash_log_file, options):
if not os.path.exists(crashlog_path):
result.PutCString("error: crashlog file %s does not exist" % crashlog_path)
- try:
- crashlog = CrashLogParser().parse(debugger, crashlog_path, False)
- except Exception as e:
- result.PutCString("error: python exception: %s" % e)
- return
+ crashlog = CrashLogParser().parse(debugger, crashlog_path, False)
if debugger.GetNumTargets() > 0:
target = debugger.GetTargetAtIndex(0)