Xcode debug总结

参考公众号:WeMobileDev

一、断点

断点是我们平时开发,很重要的调试手段,多掌握几种断点的使用,会明显提高我们的开发效率。

1.普通断点

不是很想说这个,大家最常用到的,直接command + \,更直接的在编辑区域左边行号部分单击。
我不会把断点打在block的调用那里,因为会断两次,一次在调用,一次在block块里面。

2.条件断点

如果没有条件断点,我们通常会写if,在里面加log并且添加断点。

条件断点相对于普通断点只多了一个条件,断点处右键()--> edit breakpoint,新版本的xcode可以直接双击断点进行编辑:


添加条件

条件断点在循环里面,只处理一种情况时比较有用。或者调试一些因为数据问题导致的崩溃时,很有用。

3.符号断点

符号断点其实就是对一个特定的函数名,进行断点。这里的方法,可以是OC方法名,也可以是C++的函数名。

在导航栏的断点页,点击左下角的+号,选中Symbolic Breakpoint... ,就添加了一个符号断点

可以只是一个方法名,也可以是[class method]的格式,只断点特定类中的方法,如下所示,会断点项目中所有的clickBtn方法:

断点所有的clickBtn方法

符号断点在调试一些没有源码的模块时比较有用,比如系统的库或者一些第三方库,在相应函数下断点,可以大概摸清其运行流程。同时可以在断点处查看相应的参数信息。

4.异常断点

类似于添加符号断点的流程,在导航栏的断点页,点击左下角的+号,选中Exception Breakpoint... ,就添加了一个异常断点。

异常断点

有些第三方,会报C++的异常,但是并不会引起程序崩溃,所以我们可以选择OC异常来避免没有要的情况。

5.watch断点

顾名思义,watch断点,就是在某个变量发生改变时触发的断点。
在xcode的watch窗口-->右键需要watch的变量---> watch "__变量名"


watch断点

被watch的变量,在发生变化时,会触发断点,这在我们监听时是非常有用的。
需要注意的是,watch断点在arm CPU上最大个数是两个

6.线程断点

这个就比较生僻了,实际开发过程中,也基本不会遇到。
设置也比较复杂,控制台输出:
breakpoint set -f 文件名 -l 行号 -t 线程id

则会在指定线程断点。

二、断点后的action

断点后的action,其实就是断点被触发时执行的操作

进入断点编辑界面,点击add action。


屏幕快照 2018-10-25 下午12.26.19.png

action类型有很多种,常用的debugger command,可以po变量的值。或者log message,直接输出信息。

勾选"Automatically continue after evaluating actions"后,会跳过断点,只执行action操作。

三、断点调试常用命令

1.p、po命令

用p命令查看基本数据类型的值
用po命令查看OC对象

2.expr/expression命令

用来动态修改变量的值,后面跟一个赋值指令

3.call命令

除了动态修改变量的值以外,xcode还支持动态调用方法。可以在不增加代码,不重新编译的情况下,调用方法。

如:call [self layoutSubview];

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 211,376评论 6 491
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,126评论 2 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 156,966评论 0 347
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,432评论 1 283
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,519评论 6 385
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,792评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,933评论 3 406
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,701评论 0 266
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,143评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,488评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,626评论 1 340
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,292评论 4 329
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,896评论 3 313
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,742评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,977评论 1 265
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,324评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,494评论 2 348

推荐阅读更多精彩内容

  • 转载 与调试器共舞 - LLDB 的华尔兹: https://objccn.io/issue-19-2/ 推荐:i...
    F麦子阅读 3,330评论 0 10
  • 很久没有写一些纯原创的文章了。有时候当自己知道的东西越多,才发觉自己越无知。相比那些国外牛逼的大神,自己写的东西根...
    纸简书生阅读 1,798评论 1 4
  • [转]浅谈LLDB调试器文章来源于:http://www.cocoachina.com/ios/20150126/...
    loveobjc阅读 2,487评论 2 6
  • XCode使用一:Xcode基本操作 传送至原文地址 1.Xcode IDE概览 说明:从左到右,依次是“导航窗格...
    无名小鱼会吐火阅读 28,778评论 0 23
  • 有僧自山中来,歌于途:“伴青灯兮礼颂佛,人间事兮隔山丘。冷风起兮襟微凉,一叶落兮知已秋。”歌罢,喟然叹曰:“秋风起...
    栋栋子阅读 432评论 0 3