LLDB 使用总结

LLDB 使用总结

LLDB简介

LLDB是个开源的内置于XCode的调试工具,可以安装C++或者Python插件。

LLDB的基本语法如下

 [ [...]]  [-options [option-value]] [argument [argument...]]

各种打印

  • printp:打印
  • 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

浅谈LLDB调试器

你可能感兴趣的:(LLDB 使用总结)