MacOS 如何调试 Chromium 代码

最近在开发过程中,发现有一个bug只在MacOS上出现。没办法了,看看如何在 MacOS 上调试 Chromium 代码。

简单在本文章记录下过程。

info: 请确定您的 MacOS 上的 Chromium 项目编译环境和依赖都正确。可以正常编译Chromium。

使用 GN 工具生成 Xcode 的工程文件

  1. 在 Chromium 项目中使用下面的命令生成 Xcode 的工程文件。
# 在./out/debug 路径生成文件
gn args --xcode-build-system=new --ide=xcode ./out/debug

1713071633431.png1713071633431.png


  1. 在弹出文本编辑器中输入以下内容
is_debug = true # 调试模式
is_component_build = true # 让之后的增量编译更快
symbol_level = 2 # 开启调试符号

编辑args.gn编辑args.gn


  1. 保存args.gn文件

保存args.gn文件保存args.gn文件


  1. 等待工程文件生成

生成 all.xcodeproj生成 all.xcodeproj


  1. 使用 Xcode 打开工程文件

打开 all.xcodeproj打开 all.xcodeproj

自动处理项目自动处理项目


编译项目

这里有两种方案,看自己的喜好就行。

使用Xcode编译

  1. 选择生成目标为 all

选择生成目标选择生成目标

确定生成目标为all确定生成目标为all

  1. 点击旁边的三角型图标开始编译

开始编译开始编译

  1. 等待编译完成

等待编译完成等待编译完成


使用 命令行(终端) 编译

当然我其实更推荐使用这个方案,终端直接使用命令编译即可,速度快,字编译需要的。

只用5万个,比上个方法少不少呢只用5万个,比上个方法少不少呢


配置 LLDB

安装 LLDB

参考 官网 说明配置就行,MacOS上如果您安装了Xcode,多半LLDB也是安装好的。

配置 .lldbinit 文件

这个文件时方便LLDB快速找到要调试的项目的配置。

  1. 首先,看下用户目录下是否有这个文件,如果没有的话就新建个。
# 新建.lldbinit文件
touch ~/.lldbinit
  1. 配置项目路径,编辑.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 项 -> 你需要调试的进程

根据你要调试的功能选择对应的进程根据你要调试的功能选择对应的进程

等待此处变成Running即可调试了等待此处变成Running即可调试了


断点成功

此时进程状态为Paused此时进程状态为Paused

none
最后修改于:2024年04月14日 14:42
评论已关闭