OC底層原理 01: 源碼探索的三種方式

主動已經(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的版本

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。
禁止轉(zhuǎn)載,如需轉(zhuǎn)載請通過簡信或評論聯(lián)系作者。

友情鏈接更多精彩內(nèi)容