从Chrome源码看JavaScript的执行流程(二)环境搭建

下载和编译指定版本的chromium

这一步部分是我自己安装编译chromium的过程记录,有相关经验的可以直接看后面的调试部分
精简了一下流程,实际上我在第一次编译的时候遇到了非常多的坑,但最后发现其实是自己对文档理解有误
Appstore 搜索安装xcode,安装完成后输入

测试是否成功
安装depot_tools(记得给git设置代理,不建议用git clone的方法安装,我因为这里坑了挺久的,而且一定要注意网速和代理的稳定性,万恶的GFW,同时记得给python也挂代理,不然之后runhooks的时候会报错)

然后建立一个chromium目录,在目录下执行,如果不需要之前版本的chromium,就加上–no-history

给git设置代理和取消代理的命令:

如果因为网速问题断掉了,直接在chromium目录下执行

就可以了,下载顺利,然后切换分支版本

然后

runhooks的时候,需要python参与,所以如果不能翻墙的话需要把python也挂上代理
OK 看起来sync和hook都弄好了,进入编译环节
mac下用zsh cd进一个大的git目录会卡死,需要在src目录下执行下面的命令,就不会卡了:

在src目录下

返回

然后就可以开始编译了

编译了将近5个小时,终于弄好了,版本67.0.3396.99,完结撒花
整个chromium目录有80个G,我256G硬盘的小破mac就要撑不住了….

调试准备

先来一段官方文档:https://www.chromium.org/developers/how-tos/debugging-on-os-x
xcode清除缓存的命令,如果一直卡在indexing可以试试

src目录下会生成一个xcode调试文件,我的xcode是最新版,调试文件的名字是

xcode的gdb(现在是lldb)不允许调试多个进程,而chrome每一个tab都是一个进程,有两种调试方法:
1.运行单进程的chrome:

2.启动时将xcode绑定到一个渲染进程

就会返回

然后用xcode去attach这个进程

如果想在chrome打开的时候就直接打开一个页面,用这个命令:

以及调试时可以用–no-sandbox关闭沙箱

发表评论