Xcode 断点使用心得
首先,找到断点管理器。
按Command + 6 跳转到如图位置:
在它下方有:
+号增加断点,-号删除选中断点。勾符号显示当前有效断点,之后是搜索框。
点击加号出现如图菜单:
异常断点 (Exception breakpoint)
选中 “Add Exception Breakpoing”,出现菜单,如下图:
Exception:可选 all 所有语言引起的异常,objective-c语言和c++语言引起的异常。
Break:可选onThrow和onCatch。
Action:可在程序断点执行后增加额外动作(Applescript,捕捉动画帧速,调试器命令(lldb),输入log记录,终端命令(shell),播放声音)
例如:Debugger Commond中可填入
po item 输出 item变量的值
bt 表示输出 方法调用堆栈信息
符号断点(symbolic breakpoint)
选中 “Add Exception Breakpoing”,出现菜单,如下图:
Symbol:填入你想检测消息发送实体的方法
(例如:-[NSException raise],-号是实例方法,+号是类方法)。
你也可以输入:
objc_exception_throw
malloc_error_break //跟踪调试释放了2次的对象
-[NSObject doesNotRecognizeSelector:] //向某个object发送没有的方法
Module:填入是否在一个dylib中,默认不用填。
Conditon:填入条件,例如:
(BOOL)[item isEqualToString:@"test"]
前面的(BOOL)是必须的。否则console会提示类型不符号,导致条件不能生效。
意思是item(NSString)是test时停下。
同样可以写一下判断的方法比如用来确定类类型的isKindOfClass:,确定对象在继承体系中的位置的isMemberOfClass:,判断一个对象是否能接收某个特定消息的respondsToSelector:,判断一个对象是否遵循某个协议的conformsToProtocol:,以及提供方法实现地址的methodForSelector:。
Ignore:忽略几次。
Action:同上表示在执行后附加动作。
普通断点
右击在Xcode左侧行号上的断点,出现如图菜单:
之后编辑断点,如图:
几个选项用法和前面一样。
提示:
1.使用Command + |(回车上的那个键)即可在当前行增加、删除断点。
2.在下图情况下(断点运行起来后)可以让鼠标在行号停留下
出现如图的小箭头
点击它,即可跳到这句(86行)。