Swift-01:Swift源码编译

642 阅读1分钟

Swift 进阶之路 文章汇总

编译环境

  • MacOS Catalina

  • Visual Studio Code

  • Brew install cmake ninja

编译步骤

新建一个文件夹,命名为Swift-Source

第一步:clone swift源码

这里编译的是swift-5.3.1-Release。可以自行在官网找到对应的分支,需要注意的是:swift源码版本需要与Xcode版本匹配(官方编译文档有说明)

打开终端,cdSwift-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以后会慢慢分析

至此就可以进行调试了