写在前面
本来想一直写 gdb 系列的, 但是奈何每次都要开虚拟机, 实在是不方便, 还是老老实实用 lldb 吧, 也不难用, 就是需要学一套新的命令而已…
这里的测试环境就是 MacOS arm64, llvm-17.
注意每次编译都要加上-g
参数, 以便生成调试信息, 在 MacOS 下会生成a.out.dSYM
文件夹.
开发背景
gdb 的一些问题
■ Architecture
■ Parses information in large chunks
■ GDB was not designed to vend an API (未设置开放的 API)
■ Global variables contain program state (程序状态采用全局变量表示)
■ Different GDB binaries for each architecture (不同的架构之间 GDB 二进制格式不同)
■ Pervasive preprocessor macros (充斥着预处理器宏)
■ Issues with expression parser (表达式解析器的问题)
■ Objective-C properties (OC 特性)
lldb 和 gdb 命令对比
这部分内容参考了 lldb 文档: GDB to LLDB command map - 🐛 LLDB;
查看内容相关:
lldb | gdb | 用途 |
---|---|---|