一、swift源码下载与配置
编辑环境
- xcode12
- Python 2.x
- brew install cmake ninja
编译步骤
- 第一步:clone swift源码
git clone --branch swift-5.3.1-RELEASE https://github.com/apple/swift.git
最新版本到苹果官网下载:地址,Xcode版本要与下载代码匹配。 - 第二步:update-checkout
确保当前目录在swift-source下,执行如下命令:
./swift/utils/update-checkout --tag swift-5.2.4-RELEASE --clone
这一步会clone编译swift相关的库,不成功则后面编译一定失败。 - 第三步:编译
使用ninja编译
./swift/utils/build-script -r --debug-swift-stdlib --lldb
-
第四步:VSCode调试Swift(网上下载一个Visual Studio Code)
1、进入VSCode安装插件
WeChatbd1c861ec102f7246533dc47e9ee9bfa.png
2、配置JSON
image.png
{
"version": "0.2.0",
"configurations": [
{
"type": "lldb",
"request": "launch",
"name": "Debug",
"program": "${workspaceFolder}/build/Ninja-RelWithDebInfoAssert+stdlib-DebugAssert/swift-macosx-x86_64/bin/swift",
"args": [],
"cwd": "${workspaceFolder}"
}
]
}
3、run运行

过了断点


4、可以在VSCode的控制台下面编写代码,打断点调试了

编写过后会进入HeapObject.cpp文件的swift_allocObjcet方法,可以在这里打断点

5、异常处理
不显示断点:找到CodeLLDB安装目录,在个人目录(shift+cmd+H),显示隐藏文件(shift+cmd+.),将swift源码source下的build-Ninja-lldb-bin下文件拷贝到.vscode-ex-vadimcm-lldb-bin下,在将lib下的lidlldb.dylib替换成拷贝过来的lldb文件,改名字为lidlldb.dylib。
校验lldb.dylib库

网友评论