LLDB概览
TODO:
- 【已解决】XCode和lldb调试常见用法和调试心得
背景
- 主流常见调试器=debugger
- iOS端- Apple的Xcode的内置调试器- 之前:GDB
- 现在(Xcode 5+):LLDB
 
- 之前:
 
- Apple的
- Android端- Android内置的调试器- 之前:GDB
- 现在:LLDB
 
- 之前:
 
- Android内置的调试器
LLDB
- LLDB- 名称:常写成小写的lldb
- 是什么:一个下一代的、高性能的开源调试器
- 说明- 和LLVM关系- 属于(更大的,开源的)LLVM项目的一部分=其中一个模块- 所以LLDB也是开源的
 
- 常搭配LLVM的其他模块一起使用- expression parser=- 解释器:- Clang
- disassembler=- 反汇编器:- LLVM disassembler
 
 
- 属于(更大的,开源的)
- 和Xcode关系- 是Xcode内置的调试器:之前是GDB,现在是LLDB
 
 
- 和LLVM关系
- 特点- 支持调试语言- Xcode中的LLDB- 支持调试C、Objective-C、C++
- 支持运行平台:桌面端macOS、移动端iOS(设备和模拟器)
 
- 支持调试
 
- Xcode中的LLDB
- 支持众多平台:macOS、iOS、Linux、FreeBSD、NetBSD、Windows
- 支持REPL、C++和Python插件- 注:REPL=Read-Eval-Print Loop=交互式解释器
 
- 注:
 
- 支持调试语言
 
- 名称:常写成小写的
- 此处- 主要使用场景- iOS逆向时,用LLDB调试ObjC的相关内容
 
- iOS逆向时,用
 
- 主要使用场景
LLDB的位置和版本
Mac
- Mac中的lldb- 二进制- Mac自带的: /usr/bin/lldb
- Xcode中的:/Applications/Xcode.app/Contents/Developer/usr/bin/lldb
 
- Mac自带的: 
- 集成进XCode- 位置:内嵌在Xcode中的(一般是右下角的)调试区域的控制台
 
- 位置:内嵌在Xcode中的(一般是右下角的)调试区域的控制台
 
- 二进制
Mac自带的lldb
crifan@licrifandeMacBook-Pro  ~  which lldb
/usr/bin/lldb
 crifan@licrifandeMacBook-Pro  ~  ll /usr/bin/lldb
-rwxr-xr-x  1 root  wheel   134K  1  1  2020 /usr/bin/lldb
crifan@licrifandeMacBook-Pro  ~  /usr/bin/lldb --version
lldb-1300.0.42.3
Swift version 5.5.2-dev
Xcode中的lldb
 crifan@licrifandeMacBook-Pro  ~  ll /Applications/Xcode.app/Contents/Developer/usr/bin/lldb
-rwxr-xr-x  1 crifan  staff   828K 12 15  2021 /Applications/Xcode.app/Contents/Developer/usr/bin/lldb
 crifan@licrifandeMacBook-Pro  ~  /Applications/Xcode.app/Contents/Developer/usr/bin/lldb --version
lldb-1300.0.42.3
Swift version 5.5.2-dev

