summaryrefslogtreecommitdiffstats
path: root/lldb/examples/python/crashlog.py
diff options
context:
space:
mode:
authorGreg Clayton <gclayton@apple.com>2013-04-04 23:36:51 +0000
committerGreg Clayton <gclayton@apple.com>2013-04-04 23:36:51 +0000
commita16cb16a58c1bcdc15bd932bce34c15123c106ca (patch)
tree33c55e64c8aa9b0ecc0b731b423f14bca5677f04 /lldb/examples/python/crashlog.py
parent9812634c5243b124d4c63641dc6d6c9452b957ba (diff)
downloadbcm5719-llvm-a16cb16a58c1bcdc15bd932bce34c15123c106ca.tar.gz
bcm5719-llvm-a16cb16a58c1bcdc15bd932bce34c15123c106ca.zip
<rdar://problem/13477795>
crashlog.py was always subtracting 1 to point to the previous instruction when symbolicating ARM backtraces. Many times the backtraces will include bit zero set to 1 to indicate thumb, so we need to make sure we mask the address and then backup one for non frame zero frames. llvm-svn: 178812
Diffstat (limited to 'lldb/examples/python/crashlog.py')
-rwxr-xr-xlldb/examples/python/crashlog.py4
1 files changed, 2 insertions, 2 deletions
diff --git a/lldb/examples/python/crashlog.py b/lldb/examples/python/crashlog.py
index e3fac78dc5e..c676b646a57 100755
--- a/lldb/examples/python/crashlog.py
+++ b/lldb/examples/python/crashlog.py
@@ -680,10 +680,10 @@ def SymbolicateCrashLog(crash_log, options):
for frame_idx, frame in enumerate(thread.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, options.verbose)
+ 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 - 1, options.verbose)
+ symbolicated_frame_addresses = crash_log.symbolicate ((frame.pc & crash_log.addr_mask) - 1, options.verbose)
if symbolicated_frame_addresses:
symbolicated_frame_address_idx = 0
OpenPOWER on IntegriCloud