LLDB

工作原理

使用目标
  • 能够快速定位代码
  • 减少程序运行次数
命令结构

<command> [<subcommand>[<subcommand>]] <action> [-options[option-value]] [argument [argument]]

  • command 命令
  • subcommand 子命令
  • action 动作
  • -options[option-value] 可选项及参数
  • argument [argument] 命令参数

格式

LLDB 命令行在解析操作执行命令之前完成。上面的这些元素之间通过空格来分割,如果某一元素自身含有空格,则可以使用双引号。而如果元素中又包含双引号,则可以使用反斜杠;或者元素使用单引号。

(lldb) command [subcommand] -option "some "inside" string"

(lldb) command [subcommand] -option 'some "inside" string'

一、breakpoint

  • 1.set : 设置断点
  • 2.modify:修改断点
  • 3.delete/clear:删除断点
  • 4.list :查看断点

1.breakpoint set

  • 设置条件断点:
    整数相等

breakpoint set -f BreakpointVC.m -l 29 -c 'i == 5’

字符串相等

breakpoint set -f BreakpointVC.m -l 30 -c '[self.strName isEqualToString:@"我4"]'

  • other breakpoint set option

-f 文件名
-l 行数
-d 失效
-i 跳过次数
breakpoint set -f RetHomeViewController.m -F breakPointClear -i 2
-o 运行一次后删除
-a 16位的物理地址
breakpoint set -a 0x10dcc0446
-T 线程名
-q 队列名称
-t 线程id
-x 线程位置
-C 添加command
breakpoint set -F breakPointClear -C bt
-G 运行完command是否断住
breakpoint set -F breakPointClear -G false
-N 添加别名
breakpoint set -n breakPointClear -N tao

2.breakpoint modify

  • 修改断点条件:

breakpoint modify -c ‘i == 5' 2

  • other breakpoint modify option

执行到command是否自动断住 默认断住,false不断住
breakpoint modify -G true 2
-T 线程名

-t 线程tid

-q 线程队列
-x 线程位置
修改断点有效或者无效
-d/-e
breakpoint modify -c 'i == 5' -e 3
-i 断点次数
-o 一次断点

3.breakpoint delete/clear option

breakpoint clear
删除特定行断点

breakpoint clear -f RetHomeViewController.m -l 36

删除顺序中断点
breakpoint delete - D 2
删除所有断点
breakpoint delete -f

4.breakpoint list option

-b 断点信息
-f 全部信息
-i
-v

一、watchpoint

观察变量

  • 1.set : 设置观察
  • 2.modify:修改观察
  • 3.delete:删除观察
  • 4.list :查看观察

1.watchpoint set

设置观察

watchpoint set variable self->_city

地址观察属性

p & _city
watchpoint set expression 0x00007ffc80e100c8

2.watchpoint modify

观察某个属性特定的值:

watchpoint modify -c ‘self->_age==10’ 1

3.watchpoint delete/list
删除观察

watchpoint delete

查看观察

watchpoint list

三、thread

  • 线程执行操作

线程跳转
thread jump -f RetHomeViewController.m -l 39
线程返回
thread return
顺序线程跳过断点
thread continue 1
选中线程
thread select 1
进入
thread step-in
退出
thread step-out
step-over
指令单步
step-inst
执行到行数
thread until -t 1 68

  • 线程执行操作

线程跳转
thread jump -f RetHomeViewController.m -l 39
线程返回
thread return
顺序线程跳过断点
thread continue 1
选中线程
thread select 1
进入
thread step-in
退出
thread step-out
step-over
指令单步
step-inst
执行到行数
thread until -t 1 68

  • 线程信息

线程栈 bt
thread backtrace
当前线程栈信息
thread info
当前所有线程
thread list

四、expression option

-O po 命令
expression -O -- self
修改变量值
expression self.age = 3
expression self.type = (ExpressionVCType)1
改变背景色
expression self.view.backgroundColor = [UIColor redColor]
expression [CATransaction flush]
-F 变量地址
expression -F -- self
-L 变量位置
expression -L — self

创建变量
e NSString string = (NSString *)@“aaa" e NSIntegernumber = (NSInteger)22

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

推荐阅读更多精彩内容

  •   LLDB的Xcode默认的调试器,它与LLVM编译器一起,带给我们更丰富的流程控制和数据检测的调试功能。平时用...
    Thinkdifferents阅读 1,379评论 1 4
  • Xcode Debugging 你的代码,或者任何人的代码中总会有bug存在,你可以把调试看做是更好地理解代码的一...
    吃蘑菇De大灰狼阅读 2,356评论 0 1
  • [转]浅谈LLDB调试器文章来源于:http://www.cocoachina.com/ios/20150126/...
    loveobjc阅读 2,410评论 2 6
  • LLDB 是一个有着 REPL 的特性和 C++ ,Python 插件的开源调试器。LLDB 绑定在 Xcode ...
    高思阳阅读 367评论 0 0
  • 随着Xcode 5的发布,LLDB调试器已经取代了GDB,成为了Xcode工程中默认的调试器。它与LLVM编译器一...
    随风飘荡的小逗逼阅读 1,344评论 0 0