一、編譯環(huán)境
- macOS 11.0.1
- Xcode version 12.2
- Python 2.x
- brew install make ninja
二、編譯步驟
1. clone swift源碼
git clone --branch swift-5.3.1-RELEASE https://github.com/apple/swift.git
如果想要編譯其它版本的可以從分支中查找
2. 進(jìn)入swift-source目錄運(yùn)行update-checkout
./swift/utils/update-checkout --tag swift-5.3.1-RELEASE --clone
這一步會(huì)下載Swift相關(guān)的庫(kù)
3. 編譯Swift
進(jìn)入swift-source目錄執(zhí)行
./swift/utils/build-script -r --debug-swift-stdlib --lldb
這里推薦使用ninja來(lái)編譯,使用Xcode編譯我還沒(méi)嘗試
4. 使用vscode來(lái)調(diào)試swift源碼
首先我們需要安裝vscode插件CodeLLDB
接下來(lái)配置JSON文件
配置json.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}"
} ]
}
run起來(lái)之后過(guò)掉第一個(gè)斷點(diǎn)
image.png
image.png
image.png
image.png
如果區(qū)域3不顯示,先找到vscode的安裝目錄
image.png
顯示隱藏文件的快捷鍵 command+shift+.
然后找到LLDB目錄拷貝以下文件到vscode安裝目錄對(duì)應(yīng)位置
image.png
同時(shí)修改lib文件夾中的dylib文件
image.png