编译环境
-
MacOS Catalina
-
Visual Studio Code
-
Brew install cmake ninja
编译步骤
新建一个文件夹,命名为Swift-Source
第一步:clone swift源码
这里编译的是swift-5.3.1-Release
。可以自行在官网找到对应的分支,需要注意的是:swift源码版本需要与Xcode
版本匹配(官方编译文档有说明)
打开终端,cd
到Swift-Source
文件夹下,输入以下命令
git clone --branch swift-5.3.1-RELEASE https://github.com/apple/swift.git
第二步:update-checkout
这步主要是clone
编译swift相关的库
,否则在编译时一定会失败,这步很关键!(编译过程会很长,建议休息时间编译)
./swift/utils/update-checkout --tag swift-5.3.1-RELEASE --clone
第三步:采用ninja编译
编译过程可以使用ninja,也可以使用Xcode,但是Xcode编译之后的支持性不是太好,所以这里采用ninja编译
./swift/utils/build-script -r --debug-swift-stdlib --lldb
第四步:使用VSCode调试Swift
- 配置VSCode插件
搜索CodeLLDB
插件并安装
- 打开.vscode文件
打开VScode,点击运行按钮,打开Swift-Source
文件夹,点击cmd+shift+.
显示隐藏文件,进入
点击右键用VSCode
打开json
文件
注意:
如果没有找到.vscode文件,
- 配置json文件
查找文件路径,如下图:
配置json
${workspaceFolder}
为当前文件夹
- 运行
- 源码调试
打开终端调试搜索swift_allocObject
- 搜索
_swift_allocObject
在120行打个断点,运行下看是否走到这里,为什么要搜索swift_allocObject
以后会慢慢分析
至此就可以进行调试了