编译环境
- MacOS Catalina 10.15.6
- Xcode 12.1
- Python 2.7.16
- brew install cmake ninja
编译步骤
准备工作
-
新建一个文件夹,命名
swift-source -
拉取资源需要访问外网,所以需要科学上网
第一步:clone swift源码
这里编译的是swift-5.3.1-Release。可以在官网找到对应的分支,注意:swift源码版本需要与Xcode版本匹配(官方编译文档有说明)
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.2.4-RELEASE --clone
文件的
路径尽量避免出现中文,中文有很大的概率会报错
第三步:使用ninja编译
编译过程可以使用ninja,也可以使用Xcode,但实际测试Xcode编译之后的支持性不是太好,所以这里使用ninja作为编译工具
./swift/utils/build-script -r --debug-swift-stdlib --lldb
第四步:使用VSCode调试Swift
-
VSCode下载地址:官网下载
-
VSCode 汉化(系统设置中文)
- Mac 快捷键:command + shift + p,输入搜索 configure language
- 弹出 select display language 输入框,选择 install additional languages...选项
- 选择中文(简体)的扩展包,点击install 安装
- 安装完成后,点击右下角的提示resstart now 重启vs code ,或手动关闭重新打开生效
-
在VSCode中安装
CodeLLDB插件 -
添加配置文件
launch.jsonprogram的路径需要与你编译的文件路径一致 -
点击
Debug运行,断住,过掉断点继续执行 -
看到以下结果就是运行成功了
-
-
切换到终端调试源码(例子)
-
在终端中输入以下代码
-
源码中搜索
swift_allocObject,此处加上断点 -
继续在终端输入
var t = LZTeacher(), 回车发现走到断点
到这里我们就可以正常调试源码了~~