breakpoints && lldb  && chisel 的使用
Breakpoints
BreakPoint分类
Normal Breakpoint
Exception Breakpoint
OC中的异常是一个常被忽略的地方,但实际上系统框架内这个使用很广泛。大部分这样的错误信息,系统框架都会以异常的形式throw出来,所以善用这样的breakpoint的话,我们能大大降低查找错误的时间。
OpenGL ES Error Breakpoint
这个breakpoint主要是用来在OpenGL ES错误发生时停止程序的执行。
Symbolic Breakpoint
比如 ,[SKLine drawHandlesInView]。或者 people::Person::name()
对C函数加入断点:
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">
Test Failure Breakpoint
Watchpoints
对于那些不知道怎样准确跟踪的状态问题,能够利用这个工具来解决。要设置watchpoint的话。在程序执行到stack frame包括有你想观察的变量时,让debugger暂停执行,这个时候变量在当前stack frame的scope内,这个时候才干对该变量设置watchpoint。
read,write或read_write跟着-w參数后面表示类型。
另外。命令行中。watchpoint另一些简写,set简写为s。watch简写为wa,variable简写为v。
编辑选项
BreakPoint Condition
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">
Breakpoint Actions
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">
第一个action,用来打印exception的具体信息,使用方法參考:http://stackoverflow.com/questions/17238673/xcode-exception-breakpoint-doesnt-print-details-of-the-exception-being-thrown。
Continuing after Evaluation
- https://developer.apple.com/library/ios/recipes/xcode_help-breakpoint_navigator/articles/about_breakpoint_navigator.html
- http://www.objc.io/issues/19-debugging/lldb-debugging/
- http://blog.csdn.net/freshforiphone/article/details/8546677
- https://www.bignerdranch.com/blog/xcode-breakpoint-wizardry/
- http://lldb.llvm.org/tutorial.html, LLDB命令大全
LLDB
经常使用命令
help
expression
表示表示前文中命令的第二个解释。
这里就非常easy理解以下命令是怎样工作的。p _lastPoiID=20。这行命令表达式会被运行。
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">
使用二进制打印整数 ,p/c 打印字符,p/s 打印c字符串。
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">
call
bt
image
常见问题
对中文的兼容
类型的问题
找不到方法
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">
Chisel
安装方式非常easy。使用brew工具。具体參考官方站点,不多说。
參考
- http://www.objc.io/issues/19-debugging/lldb-debugging/
- http://www.starfelix.com/blog/2014/03/17/lldbdiao-shi-ming-ling-chu-tan/
- http://www.dreamingwish.com/article/lldb-usage-a.html
- https://developer.apple.com/library/ios/documentation/IDEs/Conceptual/gdb_to_lldb_transition_guide/document/Introduction.html
- http://lldb.llvm.org/lldb-gdb.html
- http://lldb.llvm.org/tutorial.html
- https://github.com/facebook/chisel
breakpoints && lldb  && chisel 的使用的更多相关文章
- chisel(安装)
github地址 先安装homeBrew ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/m ...
- lldb调试器知多少
lldb调试器简介 lldb 是一个有着 REPL 的特性和 C++ .Python 插件的开源调试器.lldb调试器的由来是伴随着Xcode的版本升级而来. Xcode4.3之前使用的默认调试器 ...
- iOS调试
iOS高效调试 写代码难免出现bug.储备些调试技能绝对能够提高你的工作效率,让bug无所遁形.下面就和大家分享一些我在工作中常用的iOS调试小技能. 1. 打印 最简单,基础的调试方法就是打印日志了 ...
- iOS高效调试
写代码难免出现bug. 储备些调试技能绝对能够提高你的工作效率,让bug无所遁形.下面就和大家分享一些我在工作中常用的iOS调试小技能. 1. 打印 最简单,基础的调试方法就是打印日志了.贴出两段封装 ...
- iOS开发——测试篇&breakpoints、lldb 和 chisel 的详解
breakpoints.lldb 和 chisel 的详解 Breakpoints BreakPoint分类 breakpoint也是有分类的,我这里的文章内大致按使用的方式分为了 Normal Br ...
- breakpoints、lldb 和 chisel 的使用
http://www.cocoachina.com/ios/20150803/12805.html Breakpoints BreakPoint分类 breakpoint也是有分类的,我这里的文章内大 ...
- LLDB 和Chisel 使用例子
打印变量 打印数字 (lldb) p/d 16 16 16 进制格式 (lldb) p/x 16 0x10 2 进制格式 (lldb) p/t 16 0b00000000000000000000000 ...
- iOS 开发者旅途中的指南针 - LLDB 调试技术
文章转载于:iOS 开发者旅途中的指南针 - LLDB 调试技术 今天给大家介绍的内容,无关乎任何功能性开发技术,但又对开发的效率影响至深,这就是调试技术. 何为调试呢,比如我们用 print 函数在 ...
- xcode 调试器 LLDB
本文完全转载,转载地址:点击这里 你是否曾经苦恼于理解你的代码,而去尝试打印一个变量的值? NSLog(@"%@", whatIsInsideThisThing); 或者跳过一个函 ...
随机推荐
- 【bzoj1095】[ZJOI2007]Hide 捉迷藏 动态点分治+堆
题目描述 捉迷藏 Jiajia和Wind是一对恩爱的夫妻,并且他们有很多孩子.某天,Jiajia.Wind和孩子们决定在家里玩捉迷藏游戏.他们的家很大且构造很奇特,由N个屋子和N-1条双向走廊组成,这 ...
- 【bzoj3091】城市旅行 LCT区间合并
题目描述 输入 输出 样例输入 4 5 1 3 2 5 1 2 1 3 2 4 4 2 4 1 2 4 2 3 4 3 1 4 1 4 1 4 样例输出 16/3 6/1 题解 LCT区间合并 前三个 ...
- 洛谷P2056 采花
P2056 采花 52通过 99提交 题目提供者shengmingkexue 标签云端↑ 难度省选/NOI- 时空限制1s / 128MB 提交 讨论 题解 最新讨论更多讨论 求助莫队为什么被卡 ...
- Jerasure 1.2A 中的 C 函数 tips
C stat函数的用法举例 C语言 fread()与fwrite()函数说明与示例 / C 库函数 - fwrite() C 库函数 - sprintf()
- linux系统初体验
.操作系统的认识和安装 linux 一切皆文件! 对于我们学习以及以后从事运维工作的人儿来说,推荐centos,其他发行版本,万变不离其宗.(试着安装一个系统玩玩) 2.linux 系统基础 2.1. ...
- 【04】【转】Nodejs学习笔记(四)--- 与MySQL交互(felixge/node-mysql)
目录 简介和安装 测试MySQL 认识一下Connection Options MYSQL CURD 插入 更新 查询 删除 Nodejs 调用带out参数的存储过程,并得到out参数返回值 结束数据 ...
- What and How in an Application
Basically, two concerntrations: 1. What: business docs and prototype design 2. How: technical docs a ...
- WPF 自动选择dll,以SQLite为例
在学习sqlite的过程中,发现它的dll是区分32位和64位的,起初觉得很恼火,但是仔细看了下, 发现让程序自行选择dll其实也不是一件很麻烦的事情,如下: 1>创建一个sqlite数据 2& ...
- 基于websocket的页面聊天程序
注:主要的问题是当浏览器窗口直接关闭时,后台会报异常,因为后台还在继续向浏览器端写数据,但是浏览器已经关闭了,会报java.net.SocketException:peer:Socket write ...
- Markdown语法格式
Markdown是一种可以普通文本编辑器编写的标记语言,通过简单的标记语法,就可以使普通文本内容具有一定的格式.(摘自百度百科) 今天记录一下Markdown语法,以供以后使用时查询. 1.标题 用 ...