顾乔芝士网

持续更新的前后端开发技术栈

如何调试高大上的谷歌浏览器

1、下载depot_tools:

首先安装 git-core: sudo apt-get install git-core

执行命令: git
clonehttps://chromium.googlesource.com/chromium/tools/depot_tools.git

2、更新depot_tools:

直接在当前shell环境输入: export PATH="$
PATH:depot_tools_dir/depot_tools";

或加如系统环境变量: vim ~/.bashrc 文件,在最后加入export PATH="$
PATH:depot_tools_dir/depot_tools",

保存执行source ~/.bashrc

3、配置代码分支

进入自己本地要保存源码的目录,执行 gclient
confighttp://src.chromium.org/svn/releases/36.0.1985.135

可根据自己需要下载相应版本。如果不需要下载一些文件如LayoutTest修改目录下的.gclient :

1 solutions = [

2 { "name" : "36.0.1985.135",

3 "url" : "http://src.chromium.org/svn/releases/36.0.1985.135",

4 "deps_file" : "DEPS",

5 "managed" : True,

6 "custom_deps" : {

7 "src/content/test/data/layout_tests/LayoutTests": None,

8 "src/third_party/WebKit/LayoutTests": None,

9 "src/chrome/tools/test/reference_build/chrome_win": None,

10 "src/chrome_frame/tools/test/reference_build/chrome_win":None,

11 "src/chrome/tools/test/reference_build/chrome_mac": None,

12 "src/third_party/hunspell_dictionaries": None,

13 },

14 "safesync_url": "",

15 },

16 ]

17 cache_dir = None

18 target_os = ['android']

4、代码同步:

执行glient sync --force 同步一般时间比较长,

特别说明:

请使用vpn 我使用的VPN gate 一个开源的vpn 客户端(window平台) + ubuntu14.04虚拟机。

5、安装java sdk

sudo apt-get install openjdk-7-jdk

sudo upate-alternatives --config javac

sudo upate-alternatives --configjavaws

sudo upate-alternatives --configjavap

sudo upate-alternatives --configjar

sudo upate-alternatives --configjarsigner

sudo upate-alternatives --configjava

6、编译chromium

执行:
src/build/install-build-deps-android.sh (android)

ninja -C out/Release content_shell_apk

注意:

在ubuntu14.04 上编译(36.0.1985.135)的时候需要更改一下install-build-deps.sh 脚本中的

ubuntu_versions="12\.04|12\.10|13\.04|13\.10|14\.04"

添加14\.04这个才能执行

但是我们编译是为了调试学习chromium代码和框架,基于这点我们就必须弄个Debug调试版本在Ubuntu上运行调试。

编译步骤:

1)build/install-build-deps.sh

2)build/gyp_chromium-Dflag1=value1-Dflag2=value2

3)exportGYP_DEFINES="flag1=value1 flag2=value2"

4)ninja -v -C out/Debug chrome

编译成功后会在src/out/Debug 下生成300个左右文件其中有chrome可执行程序和库。

7、调试:

调试多进程最简单的方法是用 attach pid

shell下:gdb src/out/Debug/chrome 启动到gdb输入后用 r -no-sandbox (沙箱模式无法运行,有待研究)

ps -ax 查看进程id

或者用pstree -p|grep chrome

再新打开的shell输入sudo gdb (有权限限制必须用root权限)

我们调试RenderImage.cpp layout 函数在绘制进程中调用堆栈

Debug调试只能起到辅助作用,学习还是需要我们理解框架、大量阅读源码。

第一时间获得文章更新提醒,每天发布一篇技术大牛原创文章,更多技术信息分享,欢迎关注微信公众平台:程序员互动联盟(coder_online),搜索微信号coder_online即可关注,在线帮你解决技术难点,给大牛直接出难题!!!

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言