MacOS 如何调试 Chromium 代码
warning:
这篇文章距离上次修改已过234天,其中的内容可能已经有所变动。
最近在开发过程中,发现有一个bug只在MacOS上出现。没办法了,看看如何在 MacOS 上调试 Chromium 代码。
简单在本文章记录下过程。
info: 请确定您的 MacOS 上的 Chromium 项目编译环境和依赖都正确。可以正常编译Chromium。
使用 GN 工具生成 Xcode 的工程文件
- 在 Chromium 项目中使用下面的命令生成 Xcode 的工程文件。
# 在./out/debug 路径生成文件
gn args --xcode-build-system=new --ide=xcode ./out/debug
- 在弹出文本编辑器中输入以下内容
is_debug = true # 调试模式
is_component_build = true # 让之后的增量编译更快
symbol_level = 2 # 开启调试符号
- 保存args.gn文件
- 等待工程文件生成
- 使用 Xcode 打开工程文件
编译项目
这里有两种方案,看自己的喜好就行。
使用Xcode编译
- 选择生成目标为
all
- 点击旁边的
三角型图标
开始编译
- 等待编译完成
使用 命令行(终端) 编译
当然我其实更推荐使用这个方案,终端直接使用命令编译即可,速度快,字编译需要的。
配置 LLDB
安装 LLDB
参考 官网 说明配置就行,MacOS上如果您安装了Xcode,多半LLDB
也是安装好的。
配置 .lldbinit
文件
这个文件时方便LLDB
快速找到要调试的项目的配置。
- 首先,看下用户目录下是否有这个文件,如果没有的话就新建个。
# 新建.lldbinit文件
touch ~/.lldbinit
- 配置项目路径,编辑
.lldbinit
文件,并输入下面内容
info:请把
<your-path>
换成您的Chromium项目路径# So that lldbinit.py takes precedence.
script sys.path[:0] = ['/<your-path>/chromium/src/tools/lldb']
script import lldbinit
开始调试
首先使用命令启动编译好的Chromium
info:注意:在macOS上的chromium的执行程序不是
.app
那个,得右键菜单选择显示包里的Contents/MacOS/Chromium
才是# 启动
./out/debug/Chromium.app/Contents/MacOS/Chromium
在源码上打断点
选择要调试的进程
菜单栏中选择 Debug
-> Attach to Process
项 -> 你需要调试的进程