DevTools Protocol
顧名思義,調(diào)試工具協(xié)議。網(wǎng)頁所在的chrome瀏覽器上開放一個(gè)調(diào)試端口,另一個(gè)瀏覽器客戶端便可以通過該端口遠(yuǎn)程調(diào)試該網(wǎng)頁。
步驟:
- 被調(diào)試端的chrome進(jìn)程命令行,增加“--remote-debugging-port=9222”,開放一個(gè)調(diào)試端口。
- 調(diào)試端的chrome瀏覽器上,可以通過http://localhost:9527直接打開這個(gè)網(wǎng)頁,也可以通過chrome://inspect/#devices進(jìn)行調(diào)試
參考文檔:
https://chromedevtools.github.io/devtools-protocol/
https://juejin.cn/post/6844903982888910861
v8快照機(jī)制
V8在啟動(dòng)的時(shí)候會(huì)需要預(yù)先加載一些build-in函數(shù)。V8引入了快照加載功能用于加速這個(gè)過程, 目前依賴兩種快照natives_blob.bin和snapshot_blob.bin。
natives_blob.bin文件:存儲(chǔ)了build-in函數(shù)解析執(zhí)行后的內(nèi)存布局快照。build-in可以在v8/src/objects.h中的FUNCTIONS_WITH_ID_LIST宏中查看。
snapshot_blob.bin: 存儲(chǔ)了V8啟動(dòng)后的內(nèi)存布局快照。
這兩個(gè)文件缺少或被修改,瀏覽器可能會(huì)在初始化時(shí)crash,貌似最新的內(nèi)核版本去掉了natives_blob.bin文件。
參考文檔:
https://zhuanlan.zhihu.com/p/32249462