工作原理
使用目標(biāo)
- 能夠快速定位代碼
- 減少程序運(yùn)行次數(shù)
命令結(jié)構(gòu)
<command> [<subcommand>[<subcommand>]] <action> [-options[option-value]] [argument [argument]]
- command 命令
- subcommand 子命令
- action 動(dòng)作
- -options[option-value] 可選項(xiàng)及參數(shù)
- argument [argument] 命令參數(shù)
格式
LLDB 命令行在解析操作執(zhí)行命令之前完成。上面的這些元素之間通過(guò)空格來(lái)分割崖瞭,如果某一元素自身含有空格书聚,則可以使用雙引號(hào)。而如果元素中又包含雙引號(hào)胯杭,則可以使用反斜杠做个;或者元素使用單引號(hào)居暖。
(lldb) command [subcommand] -option "some "inside" string"
(lldb) command [subcommand] -option 'some "inside" string'
一太闺、breakpoint
- 1.set : 設(shè)置斷點(diǎn)
- 2.modify:修改斷點(diǎn)
- 3.delete/clear:刪除斷點(diǎn)
- 4.list :查看斷點(diǎn)
1.breakpoint set
- 設(shè)置條件斷點(diǎn):
整數(shù)相等
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 行數(shù)
-d 失效
-i 跳過(guò)次數(shù)
breakpoint set -f RetHomeViewController.m -F breakPointClear -i 2
-o 運(yùn)行一次后刪除
-a 16位的物理地址
breakpoint set -a 0x10dcc0446
-T 線程名
-q 隊(duì)列名稱
-t 線程id
-x 線程位置
-C 添加command
breakpoint set -F breakPointClear -C bt
-G 運(yùn)行完command是否斷住
breakpoint set -F breakPointClear -G false
-N 添加別名
breakpoint set -n breakPointClear -N tao
2.breakpoint modify
- 修改斷點(diǎn)條件:
breakpoint modify -c ‘i == 5' 2
- other breakpoint modify option
執(zhí)行到command是否自動(dòng)斷住 默認(rèn)斷住糯景,false不斷住
breakpoint modify -G true 2
-T 線程名
-t 線程tid
-q 線程隊(duì)列
-x 線程位置
修改斷點(diǎn)有效或者無(wú)效
-d/-e
breakpoint modify -c 'i == 5' -e 3
-i 斷點(diǎn)次數(shù)
-o 一次斷點(diǎn)
3.breakpoint delete/clear option
breakpoint clear
刪除特定行斷點(diǎn)
breakpoint clear -f RetHomeViewController.m -l 36
刪除順序中斷點(diǎn)
breakpoint delete - D 2
刪除所有斷點(diǎn)
breakpoint delete -f
4.breakpoint list option
-b 斷點(diǎn)信息
-f 全部信息
-i
-v
一、watchpoint
觀察變量
- 1.set : 設(shè)置觀察
- 2.modify:修改觀察
- 3.delete:刪除觀察
- 4.list :查看觀察
1.watchpoint set
設(shè)置觀察
watchpoint set variable self->_city
地址觀察屬性
p & _city
watchpoint set expression 0x00007ffc80e100c8
2.watchpoint modify
觀察某個(gè)屬性特定的值:
watchpoint modify -c ‘self->_age==10’ 1
3.watchpoint delete/list
刪除觀察
watchpoint delete
查看觀察
watchpoint list
三、thread
- 線程執(zhí)行操作
線程跳轉(zhuǎn)
thread jump -f RetHomeViewController.m -l 39
線程返回
thread return
順序線程跳過(guò)斷點(diǎn)
thread continue 1
選中線程
thread select 1
進(jìn)入
thread step-in
退出
thread step-out
step-over
指令單步
step-inst
執(zhí)行到行數(shù)
thread until -t 1 68
- 線程執(zhí)行操作
線程跳轉(zhuǎn)
thread jump -f RetHomeViewController.m -l 39
線程返回
thread return
順序線程跳過(guò)斷點(diǎn)
thread continue 1
選中線程
thread select 1
進(jìn)入
thread step-in
退出
thread step-out
step-over
指令單步
step-inst
執(zhí)行到行數(shù)
thread until -t 1 68
- 線程信息
線程棧 bt
thread backtrace
當(dāng)前線程棧信息
thread info
當(dāng)前所有線程
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
創(chuàng)建變量
e NSString number = (NSInteger)22