JDevlieghere created this revision. JDevlieghere added a reviewer: mib. Herald added a project: All. JDevlieghere requested review of this revision.
Avoid a OverflowError when the pc is zero. This can happen for "unknown frames" where the crashlog generator reports a zero pc. We could omit them altogether, but if they're part of the crashlog it seems fair to display them in lldb as well. rdar://92686666 https://reviews.llvm.org/D125716 Files: lldb/examples/python/crashlog.py Index: lldb/examples/python/crashlog.py =================================================================== --- lldb/examples/python/crashlog.py +++ lldb/examples/python/crashlog.py @@ -114,14 +114,12 @@ for frame_idx, frame in enumerate(self.frames): disassemble = ( this_thread_crashed or options.disassemble_all_threads) and frame_idx < options.disassemble_depth - if frame_idx == 0: - symbolicated_frame_addresses = crash_log.symbolicate( - frame.pc & crash_log.addr_mask, options.verbose) - else: - # Any frame above frame zero and we have to subtract one to - # get the previous line entry - symbolicated_frame_addresses = crash_log.symbolicate( - (frame.pc & crash_log.addr_mask) - 1, options.verbose) + + # Any frame above frame zero and we have to subtract one to + # get the previous line entry. + pc = frame.pc & crash_log.addr_mask + pc = pc if frame_idx == 0 or pc == 0 else pc - 1 + symbolicated_frame_addresses = crash_log.symbolicate(pc, options.verbose) if symbolicated_frame_addresses: symbolicated_frame_address_idx = 0
Index: lldb/examples/python/crashlog.py =================================================================== --- lldb/examples/python/crashlog.py +++ lldb/examples/python/crashlog.py @@ -114,14 +114,12 @@ for frame_idx, frame in enumerate(self.frames): disassemble = ( this_thread_crashed or options.disassemble_all_threads) and frame_idx < options.disassemble_depth - if frame_idx == 0: - symbolicated_frame_addresses = crash_log.symbolicate( - frame.pc & crash_log.addr_mask, options.verbose) - else: - # Any frame above frame zero and we have to subtract one to - # get the previous line entry - symbolicated_frame_addresses = crash_log.symbolicate( - (frame.pc & crash_log.addr_mask) - 1, options.verbose) + + # Any frame above frame zero and we have to subtract one to + # get the previous line entry. + pc = frame.pc & crash_log.addr_mask + pc = pc if frame_idx == 0 or pc == 0 else pc - 1 + symbolicated_frame_addresses = crash_log.symbolicate(pc, options.verbose) if symbolicated_frame_addresses: symbolicated_frame_address_idx = 0
_______________________________________________ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits