使用Reveal调试自家应用的方法

利用Xcode的symbolic breakpoint断点加载Reveal Server

使用Reveal调试自家应用的方法_第1张图片
屏幕快照 2019-06-27 下午5.16.55.png

具体参数设置参数说明如下:
Symbol:
方法名,支持C语言函数名和OC函数名两种写法:比如UIApplicationMain或者[UIViewController viewDidLoad]
Module:
区分不同模块
Condition:
断点触发的条件,这里可以添加一些指定触发条件,比如$arg3 == nil表示方法第一个参数不能为nil。这里$arg3代表第一个参数,$arg4代表第二个参数,一次类推。
Ignore:
忽略几次调用后才进入debug模式,默认值0
Action
选择Debugger Command,Command命令内容如下:
expr (Class)NSClassFromString(@"IBARevealLoader") == nil ? (void *)dlopen("/Applications/Reveal.app/Contents/SharedSupport/iOS-Libraries/RevealServer.framework/RevealServer", 0x2) : ((void*)0)
Options
勾选,触发断点时不进入Debug模式。Automatically continue after evaluating actions(评估操作后自动继续)

以上信息配置完成之后,将断点设置成用户断点,这样新建的项目也会包含这个断点,每次项目重新启动的时候就会激活应用程序中安装Reveal应用

使用Reveal调试自家应用的方法_第2张图片
屏幕快照 2019-06-27 下午5.47.03.png

关于Action中的其他类型:
Log Message:
符号:@expression@ 定义:LLDB表达式,expression可以为循环中的变量类型
符号:%B 定义:断点的名称(断点所在函数的名称)
符号:%H 定义:遇到该断点的次数
eg %B %H @10+10@
Console result:
-application: didFinishLaunchingWithOptions: 91 20
-application: didFinishLaunchingWithOptions: 92 20
-application: didFinishLaunchingWithOptions: 93 20

Debugger Command:
可以输入提示命令,po(打印对象信息),bt(打印函数战),expression(表达式)
eg:
po application
bt
expression i==98

你可能感兴趣的:(使用Reveal调试自家应用的方法)