LLDB简介
LLDB是个开源的内置于XCode的调试工具,可以安装C++或者Python插件。
d4b96f15d85fd027d0373ee95bc3e5eb.jpeg随着Xcode 5的发布,LLDB调试器已经取代了GDB,成为了Xcode工程中默认的调试器。它与LLVM编译器一起,带给我们更丰富的流程控制和数据检测的调试功能。LLDB为Xcode提供了底层调试环境,其中包括内嵌在Xcode IDE中的位于调试区域的控制面板,在这里我们可以直接调用LLDB命令。
LLDB命令的语法有其通用结构,通常是以下形式的:
<command> [<subcommand> [<subcommand>...]] <action> [-options [option-value]] [argument [argument...]]
- <command>(命令)和<subcommand>(子命令):LLDB调试命令的名称。命令和子命令按层级结构来排列:一个命令对象为跟随其的子命令对象创建一个上下文,子命令又为其子命令创建一个上下文,依此类推。
- <action>:我们想在前面的命令序列的上下文中执行的一些操作。
- <options>:行为修改器(action modifiers)。通常带有一些值。
- <argument>:根据使用的命令的上下文来表示各种不同的东西。
- []:表示命令是可选的,可以有也可以没有 .
注意: LLBD命令行的解析操作在执行命令之前完成。上面的这些元素之间通过空格来分割,如果某一元素自身含有空格,则可以使用双引用。而如果元素中又包含双引号,则可以使用反斜杠;或者元素使用单引号。在LLDB中单引号和双引号是等价的
例如:
lldb) command [subcommand] -option "some \"quoted\" string"
can also be written:
(lldb) command [subcommand] -option 'some "quoted" string'
设置断点
- breakpoint (断点)
$ breakpoint set -n [方法字符串]
例如:
$ breakpoint set -n "viewDidLoad"
`其中 -n 是 --name缩写`
- 显示所有断点
$ breakpoint list
- 启用断点
$ breakpoint enable [编号]
- 禁用断点
$ breakpoint disable [编号]
- 删除(只能按组删除,不能删除组中的某个)
$ breakpoint delete [编号]
- 根据selector方法设置断点
$ breakpoint set —-selector [方法]
例如:
$ breakpoint set --selector dealloc
- 根据某个文件中的selector方法设置断点
$ breakpoint set —file [文件] —-selector [方法]
- 遍历项目中所有包含 testFunc 字符串的方法并设置断点
$ breakpoint set -r [方法字符串]
例如:
$ breakpoint set -r "testFunc"
流程控制
END
网友评论