在研究不同的程序时,我经常使用LLDB的break set -S命令打破常见的选择器,例如" init"和" drawInRect:"。但是,自更新LLDB以来,这不再适用于没有调试符号的选择器。
例如,在LLDB 320.4.124.10中:
(lldb) br s -S drawAtPoint:withAttributes:
Breakpoint 1: where = AppKit`-[NSString(NSStringDrawing) drawAtPoint:withAttributes:], address = 0x000000010b9be060
但在LLDB 320.4.152中:
(lldb) br s -S drawAtPoint:withAttributes:
Breakpoint 1: no locations (pending).
WARNING: Unable to resolve breakpoint to any actual locations.
假设它是一个记录不完整的功能(旨在阻止用户调试不需要的选择器?)而不是错误,我如何在这些选择器上设置断点?
答案 0 :(得分:2)
这只是一个错误,请与http://bugreport.apple.com/一起提交报告。
如果正确编写正则表达式,则可以使用正则表达式断点(break set -r
)获得相同的效果。