DerekSelander / LLDB

A collection of LLDB aliases/regexes and Python scripts to aid in your debugging sessions
GNU General Public License v2.0
1.77k stars 198 forks source link

msl not working in Xcode 12.4 #31

Open daniel-beard opened 3 years ago

daniel-beard commented 3 years ago

Hi, I've enabled malloc stack logging in the scheme editor for my current target (Simulator x86_64), and when I take an ObjC object address and pass to msl, I'm not getting any output.

Is there something I might be missing, or otherwise how can I provide more information here for effective debugging? I am using the latest version of this repo, as of this morning.

(lldb) p inObject
(ClassNameRedactedHere *) $5 = 0x00007f8beaab8e40
(lldb) msl 0x00007f8beaab8e40
daniel-beard commented 3 years ago

Previous no output was with only Live Allocation tracking. For tracking all allocations, I see this:

(lldb) msl 0x00007fecd0575df0
Traceback (most recent call last):
  File "/Users/dbeard/bin/LLDB/lldb_commands/msl.py", line 55, in handle_command
    retString = processStackTraceStringFromAddresses(addresses, target, options)
  File "/Users/dbeard/bin/LLDB/lldb_commands/msl.py", line 66, in processStackTraceStringFromAddresses
    prevAddr = target.ResolveLoadAddress(frameAddr - 1)
  File "/Applications/Xcode12.4.app/Contents/SharedFrameworks/LLDB.framework/Resources/Python3/lldb/__init__.py", line 11127, in ResolveLoadAddress
    return _lldb.SBTarget_ResolveLoadAddress(self, vm_addr)
OverflowError: in method 'SBTarget_ResolveLoadAddress', argument 2 of type 'lldb::addr_t'
(lldb) 
daniel-beard commented 3 years ago

One last follow up, it does appear to work if I set All Allocation and Free History and pass the resymbolication flag:

(lldb) msl -r {Address}    // this works