最近在研究iOS的逆向,学到了动态调试LLDB这块,之前在开发的时候只是进行正常的打断点和打印参数,没有去具体的了解整个调试流程。这次做个相关知识的学习并进行个总结。
什么是LLDB?
LLDB是Low Level Debugger的简称,在iOS开发的调试中LLDB是经常使用的,LLDB是Xcode内置的动态调试工具。
LLVM 是一个模块化和可重用的编译器和工具链技术的集合,创始人是 Chris Lattner,也是Swift之父
LLDB 是 LLVM 的子项目,基于LLVM提供的库和Clang构建的优秀的本地调试器。
什么叫动态调试?
/Library/Desktop/Xcode.app/Contents/Developer
将程序运行起来,通过下断点、打印等方式,查看参数、返回值、函数调用流程等。
Xcode动态调试:
-
关于GCC、LLVM、GDB、LLDB
Xcode的编译器发展历程:GCC → LLVM
Xcode的调试器发展历程:GDB → LLDB
-
debugserver⼀开始存放在Mac的Xcode⾥面
/Applications/Xcode.app/Contents/Developer/