1/进入目录
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/DeviceSupport
找到手机对应版本,点开dmg;拷贝debugserver备用
/usr/bin/debugserver
2/修改权限
导出权限
修改内容
编辑后将其合入debugserver【注意-S后面不要空格】
3/将编辑完成的文件放入手机的/usr/bin目录
电脑端 *** 作->
手机端 *** 作->如果有过 *** 作,需要删除debugserver
在Mac上打开命令行窗口,让10011端口与10011端口映射、10010与22端口映射
在Mac上新建命令行窗口,然后SSH登陆到手机
登录到手机后,启动手机的debugserver服务,让其与App建立交互
在Mac上新建命令行窗口
使用LLDB命令c,先让程序继续运行
测试
breakpoint使用
1、下断点
或
打印:
断点位置信息,执行便能在该处断住。
连续下多个断点:
运行 c 继续运行, n 单步执行, s 进入函数内部执行,finish执行到函数尾部。
2、查看断点列表
打印:
3、禁用断点
4、启用断点
5、删除所有断点
删除只能删除一组,不能单个删除
6、设置 selector
将为所有该方法设置断点
7、设置文件中的 selector 断点
8、设置带有相同字符串的方法断点
打印:
如上也给其他带有 Game 字符的类下了断点。
给某一个文件下的带有相同字符串的方法下断点:
bt、frame命令
1、查看函数相关信息,使用 p、down 追踪函数的调用和被调用关系
使用 bt 命令查看函数调用堆栈
2、查找方法的调用者及方法名称
methods、pviews
1、 methods 打印当前对象的属性和方法
2、 pviews 打印当前视图的层级结构
以上两个命令是 lldb 插件名中的命令。 chisel安装
……
HTML、JS、CSS的Web三件套,时下占据了项目的主要业务部分,原生和JS的交互必不可少,下面总结iOS调试Webview的两种方法:
1.在手机设置里,找到Safair浏览器,在高级里启用Web检查器;
2.Mac上Safair浏览器,在偏好设置高级选项底部勾选“在菜单栏中显示开发菜单”;
3.手机连接Xcode工程, *** 作App跳转到JS页面,点击Mac上的Safair浏览器,在开发选项下拉菜单中,找到手机名称对应的html页面即可进入调试器;
( 参考链接 )
1.使用brew安装 ios-webkit-debug-proxy
brew install ios-webkit-debug-proxy
若上面的命令不有效,尝试下面的命令安装
brew uninstall --force libimobiledevice ios-webkit-debug-proxy
brew install --HEAD libimobiledevice ios-webkit-debug-proxy
2.安装成功后,在终端输入下面的命令
ios_webkit_debug_proxy -f chrome-devtools://devtools/bundled/inspector.html
若有问题,报错Could not connect to lockdownd. Exiting.: Permission denied,可输入下面的命令,再次尝试
sudo chmod -R 777 /var/db/lockdown/
3.保持终端命令连接状态,在chrome浏览器中打开 localhost:9221 ,点击真机选项;
4. *** 作App跳转到JS页面,下面两种方式均可进入调试器:
(1)在Mac的chrome中刷新页面,选中要打开的html连接,右键点击“复制链接地址”,新建标签页,在地址栏粘贴地址,按enter键进入;
(2)直接在谷歌浏览器地址栏中输入 chrome://inspect/#devices ,点击Target下方的inspect进入;
备注:
(1)手机上也要安装谷歌浏览器,否则终端可能无法连接到真机;
(2)复制JS页面地址时,不要用cmd+c快捷键,要右键单击“复制链接地址”,然后新建标签页,粘贴地址打开;
总结:
两种浏览器相比较,虽然Safair调试器打开方便,但容易卡住,有时无法查看JS的变量值,甚至打断点会闪退,建议使用Google Chrome浏览器调试方法。
一般没有引用 <UIKit/UIKit.h>等系统动态库时:
引用oc库时,会报错
解决方案:
其他解决方案,xcode命令行:
执行后,本地会多出一个文件,在 /private/tmp/msgSend-xxxx ,可以看到当前调用的所有方法。
添加方法: Project -> Scheme -> Edit Scheme ,在 Arguments 下可以添加运行时的环境变量( Environment Variables )
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)