Xcode 探讨之 LLDB的基本使用

阐述
在LLVM中有一段对LLDB的介绍:
  1. The LLDB project builds on libraries provided by LLVM and Clang to provide a great native debugger. It uses the Clang ASTs and expression parser, LLVM JIT, LLVM disassembler, etc so that it provides an experience that "just works". It is also blazing fast and much more memory efficient than GDB at loading symbols.
从这段话中,我们可以看出LLDV是基于LLVM和Clang库形成的,它比GDB更快更效率。

在LLDB文章中,也有一段介绍:
LLDB is a next generation, high-performance debugger. It is built as a set of reusable components which highly leverage existing libraries in the larger LLVM Project, such as the Clang expression parser and LLVM disassembler.
LLDB is the default debugger in Xcode on Mac OS X and supports debugging C, Objective-C and C++ on the desktop and iOS devices and simulator.

LLDB默认就集成中Xcode(4.3+)中,它可以在macOS桌面程序、iOS设备以及模拟器环境下调试C、Objective-C、C++代码,但如果你正在使用老一点版本的Xcode的话,那就是GDB调试器。

探讨
基础前提
LLDB基本语法格式
     <command> [<subcommand> [<subcommand>...]] <action> [-options [option-value]] [argument [argument…]]
 1.  <command>(命令)和<subcommand>(子命令):LLDB调试命令的名称。命令和子命令按层级结构来排列:一个命令对象为跟随其的子命令对象创建一个上下文,子命令又为其子命令创建一个上下文,依此类推。
 2. <action>:执行命令的操作
 3. <options>:命令选项
 4. <arguement>:命令的参数
 5. []:表示命令是可选的,可以有也可以没有.

例如 $ breakpoint set -n main 
1. command: breakpoint 表示断点命令
2. action: set 表示设置断点
3. option: -n 表示根据函数name设置断点
4. arguement: mian 表示方法名为mian

原始命令(raw命令)
LLDB支持不带命令选项<options>的原始命令(raw命令),原始命令会将命令后面的所有东西当做参数传递。不过很多原始命令也可以带命令选项,当你使用命令选项的时候,需要在命令选项后面添加 ‘--' 区分命令选项和参数。
例如 $ expression -O -- self 


'唯一匹配' 原则
LLDB的命令遵循唯一匹配原则: 假如根据前n个字母已经能唯一匹配到某个命令,则只写前n个字母等效于写下完整的命令。举个例子:


基础命令
expression 命令
expression 命令的作用是执行一个表达式,并将表达式返回的结果输出。
expression 完整语法:
expression <cmd-options> -- <expr>
1. <cmd-options>: 命令选项,一般情况下使用默认的即可,不需要特别标明。
2. --: 命令选项结束符,表示所有的命令选项已经设置完毕,如果没有命令选项,--可以省略 ,它其实就是命令选项和表达式之间的分隔符
3. <expr>: 要执行的表达式 说expression是LLDB里面最重要的命令都不为过。因为他能实现2个功能。

1   执行表达式某个表达式,在运行代码过程中,可以听过执行某个表达式来动态改变程序执行的轨迹。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值