主動已經(jīng)是我對熱愛東西表達(dá)的極限了
本文主要介紹源碼探索的三種方式:
- 符號斷點查看源碼
- control + step into 查看源碼
- 匯編查看源碼
以下已alloc為例
1. 下符號斷點的形式直接跟流程
為需要查看代碼的地方添加斷點,為需要查看源碼的方法添加符號斷點

添加符號斷點
然后找到你當(dāng)前所需要的方法,Symbol的位置添加你需要追蹤的方法

添加符號斷點追蹤的方法
這個時候開始運行你的代碼,會出現(xiàn)很多調(diào)用alloc的符號斷點,而我們只要將代碼執(zhí)行到指定的位置后打開符號斷點,就能定位到你需要的查看的代碼部分,以
alloc為例截圖如下:
通過alloc在堆棧中的調(diào)用情況可以看出alloc 所在的庫libobjc.A.dylib

alloc所對應(yīng)的庫
2. 通過control + step into 查看源碼出處
在需要的位置打上斷點,然后執(zhí)行代碼,然后control + step into 就可以直接查看,

control + step into
此時只需要添加 objc_alloc 的符號斷點,繼續(xù)執(zhí)行代碼,就能查看源碼所在的庫

alloc所在的位置

對應(yīng)方法所在庫
3. 匯編查看跟流程
直接在需要查看的地方添加斷點,然后執(zhí)行到該斷點的時候后選中 Debug -> Debug Workflow -> Always Show Disassembly 就可以直接進(jìn)入,然后添加objc_alloc的符號斷點即可查看 alloc所對應(yīng)的庫

匯編查看
注意(以下是Apple 提供的源碼下載地址):
1、Apple 所有開源源碼匯總地址,根據(jù)相應(yīng)的版本查找對應(yīng)的源碼,以mac 10.15為例:macOS --> 10.15 --> 選擇10.15 --> 搜索 objc
2、Apple 比較直接的源碼下載地址,直接搜索想要下載的源碼名稱即可,例如objc:直接搜索 objc --> objc4/ --> 選擇相應(yīng)的objc的版本