Search code examples
objective-cselectorbreakpointslldb

LLDB break on selector no longer works for non-debuging symbols


While researching different programs, I often use LLDB's break set -S command to break on common selectors such as "init" and "drawInRect:". However, since updating LLDB, this no longer works for selectors without debugging symbols.

For example, in LLDB 320.4.124.10:

(lldb) br s -S drawAtPoint:withAttributes:
Breakpoint 1: where = AppKit`-[NSString(NSStringDrawing) drawAtPoint:withAttributes:], address = 0x000000010b9be060

But in LLDB 320.4.152:

(lldb) br s -S drawAtPoint:withAttributes:
Breakpoint 1: no locations (pending).
WARNING:  Unable to resolve breakpoint to any actual locations.

Assuming it's a poorly documented feature (intended to prevent users from debugging unwanted selectors?) rather than a bug, how can I set breakpoints on such selectors?


Solution

  • This is just a bug, please file a report with or with http://bugreport.apple.com/ .

    You can get sort of the same effect with regular expression breakpoints (break set -r) if you write the regex correctly.