DevTools Protocol
顾名思义,调试工具协议。网页所在的chrome浏览器上开放一个调试端口,另一个浏览器客户端便可以通过该端口远程调试该网页。
步骤:
- 被调试端的chrome进程命令行,增加“--remote-debugging-port=9222”,开放一个调试端口。
- 调试端的chrome浏览器上,可以通过http://localhost:9527直接打开这个网页,也可以通过chrome://inspect/#devices进行调试
参考文档:
https://chromedevtools.github.io/devtools-protocol/
https://juejin.cn/post/6844903982888910861
v8快照机制
V8在启动的时候会需要预先加载一些build-in函数。V8引入了快照加载功能用于加速这个过程, 目前依赖两种快照natives_blob.bin和snapshot_blob.bin。
natives_blob.bin文件:存储了build-in函数解析执行后的内存布局快照。build-in可以在v8/src/objects.h中的FUNCTIONS_WITH_ID_LIST宏中查看。
snapshot_blob.bin: 存储了V8启动后的内存布局快照。
这两个文件缺少或被修改,浏览器可能会在初始化时crash,貌似最新的内核版本去掉了natives_blob.bin文件。
参考文档:
https://zhuanlan.zhihu.com/p/32249462