LLDB 使用总结
LLDB简介
LLDB是个开源的内置于XCode的调试工具,可以安装C++或者Python插件。
LLDB的基本语法如下
<command> [<subcommand> [<subcommand>...]] <action> [-options [option-value]] [argument [argument...]]
各种打印
-
print
、p
:打印 -
po
:打印对象
(lldb) p argv
(const char **) $2 = 0x00007ffeefbff728
(lldb) p @[@"one", @"two"]
(__NSArrayI *) $3 = 0x000000010224a190 @"2 elements"
(lldb) e -o -- $3
<__NSArrayI 0x10224a190>(
one,
two
)
(lldb) po $3
<__NSArrayI 0x10224a190>(
one,
two
)
对变量进行处理
(lldb) print count
(NSUInteger) $0 = 99
(lldb) print $0 + 7
(unsigned long) $1 = 106
(lldb) expression count = 42
(NSUInteger) $2 = 42
(lldb) e int $a = 2
(lldb) p $a * 19
(int) $0 = 38
(lldb) e NSArray *$array = @[@"one",@"two",@"three"]
(lldb) po $array
<__NSArrayI 0x100741850>(
one,
two,
three
)
(lldb) p [$array count]
(NSUInteger) $0 = 3
(lldb) po [[$array objectAtIndex:0] uppercaseString]
ONE
删除断点
通过 `br li`命令来查看所有断点列表
通过`br dis 1`来让第一个断点无效
通过`br del 1`来删除第一个断
读取内存
memory read/数量格式字节数 内存地址
x/数量格式字节数 内存地址
举例:x/3xw 0x10010
格式
x
是16进制,f
是浮点,d
是10进制
字节大小
b
:byte 1字节,h
:half word 2字节
w
:word 4字节,g
:giant word 8字节
修改内存中的值
memory write 内存地址 数值
举例:memory write 0x0000010 10
网友评论