
lldb
前言
这篇文章,主要的内容是lldb命令用法。我们一般在iOS开发中,当我们在debug调试的时候,Xcode已经为我们提供可视化的界面。但是,这部分信息是非常有限的。如果,当前可视化界面提供的信息不能满足你,或者你想让你的技术表现的更cool一些,再或者你从事逆向开发。那么这么文章将可以满足你以上所有需求。当然,这也是你进阶iOS高级开发者,需要修炼的秘籍。
LLDB 命令结构
<command> [<subcommand> [<subcommand>...]] <action> [-options [option-value]] [argument [argument...]]
[ ]标示命令是可选命令也可以写,也可以不写。
<command>(命令) 和 <subcommand> (子命令)是lldb调试对象的名称。命令和子命令在一个层次结构中,一个特定的命令对象为他后面的一个子命令对象创建上下文,依次类推。
help命令

help.png
当你忘记command的时候可以在lldb里面输出help查看所有lldb所支持的command命令:
command命令解析
apropos
apropos : 当你对一条命令比较模糊,记不住他的全貌的时候可以使用这个命令来帮助你。
比如:对breakpoint命令比较模糊,可以在终端输入lldb,然后输入:
apropos breakpoint

apropos.png
注:apropos只对command命令有效
breakpoint
断点命令
help breakpoint

help breakpoint.png
help breakpoint clear

help breakpoint clear.png
可以看到命令的含义:删除或者禁用指定源文件和行匹配的断点。
如:
breakpoint clear -f ViewController.m -l 32
删除ViewController.m文件中32行的断点。
help breakpoint command

help breakpoint command.png
操作已经断过点的命令,对该断点可以增加,删除,列出,断点命令。
给断点1增加打印命令:po self.view
breakpoint command add 1
Enter your debugger command(s). Type 'DONE' to end.
> po self.view
> DONE
列出断点1中的命令
br command list 1
Breakpoint 1:
Breakpoint commands:
po self.view
删除断点1中的命令
br command delete 1
也可以执行:
help breakpoint command add
查看更加详细的add命令
breakpoint delete/disable/enable/list
这四条命令分别是对断点的删除,禁止,是生效,列出
breakpoint list 1
罗列出1断点的具体信息,其余命令同上的用法
bugreport
创建特定域的bug报告
bugreport unwind XXX (XXX 是你想要看的方法名)
如:
bugreport unwind viewDidLoad:
disassemble
拆分当前目标中的特定说明。默认当前线程和堆栈的当前函数