chromium浏览器开发系列第四篇:如何调试最新chromium源码

接二连三的事情,时间比较紧张,但是还是没有把这个系列的文章丢掉,因为这也是对自己知识的总结吧。提倡大家多写写,以后再看的时候会有种莫名的小激动。

上周写的是chromium的目录结构,好像大家不太感兴趣,在我看来这部分很重要。开头有链接地址,大家想看可以再看看。

 

    从源码下载到编译,到目录结构,今天终于到了重要的环节,调试。

    在windows上,调试工具都是使用微软自家的产品:Visual Studio或者winDBGwindebug)。Chromium也是与时俱进,现在主要使用Visual Studio2013。我今天主要讲使用vs2013调试源码。

 

    我在编译代码那一章(http://my.oschina.net/ghost045/blog/395973)的时候曾经讲过生成源码工程的东东,如下:

set GYP_MSVS_VERSION=2013

set GYP_GENERATORS=msvs-ninja,ninja

set GYP_DEFINES=component=shared_library

set PATH=C:\depot_tools\python276_bin\;C:\depot_tools\;

python.exe src/build/gyp_chromiumsrc/chrome/chrome.gyp >>log.txt 2>&1

 

    运行成功后,打开src\chrome文件夹,发现下面多了好多文件----都是工程文件。

 

 

    如果你已经安装了vs2013,那么直接双击打开chrome.sln即可。打开后在解决方案资源管理器可以看到所有的解决方案信息。

 

 

    点击展开上图中的chrome文件夹,选择chrome解决方案,右键设置为启动项目,然后直接F5(调试->开始调试)就可以启动程序调试了。

 

    如果想以其他的解决方案为启动项目,可以直接右键设置就行。不过需要增加下面一步设置:右键打开想要设置的启动项目的属性

    点击左边的调试选项,设置“命令”,直接将文件地址设置为chrome.exe的绝对路径地址

 

这样就可以直接选择从不同的解决方案启动调试了。

 

       chromium是多进程架构,我们启动后只能调试主进程,其他的renderer进程和插件扩展进程是单独的,不能被直接调试。下面提供几种方法可以调试其他进程:

1.单进程模式

    最简单的方法是将chromium运行在单进程模式。这样你会看到整个程序的状态,没有额外的工作(虽然它仍会有很多的线程)。使用单进程模式,需要在在Chrome项目属性调试页中的命令行参数添加--single-process。这种方法并不完美,因为有些问题不会出现在这个模式。

默认情况下,Visual Studio选择Browser/browser.exe为启动项目,需要用户手动选择chrome解决方案右键设置为启动项目。

2.启动chrome的调试log

    在命令行参数添加--enable-logging --v=1,运行期间的log将会保存在文件中,debug版本的放在out\Debug下的chrome_debug.log中,release版本的放在C:\Users\账户名\AppData\Local\Chromium\User Data目录中。

3.使用vs2013自带的“附加到进程”选项调试

    直接在vs2013中调试时,可以使用附加到进程的功能,直接开启调试后,点击Tools > Attach to Process附加你需要调试的进程即可。

    如果你想调试的renderer进程的内容发生在进程启动时,那么可以在命令行参数增加--renderer-startup-dialog--no-sandbox这两个必须同时使用,才能在renderer进程启动时弹出窗口让你及时附加到进程上。

 

    另外还有很多有用的参数可以设置,使用这些参数可以让你随心所欲的实现自己想要调试的内容,chromium团队也在一直努力让调试变得更简单实用。其他的命令可以查看文件:content_switches.cc,里面标识了各种参数以及含义。

调试的东西很多,今天就先讲这么多,讲多了也难以消化,之后我还会给大家带来更细致的讲解,包括windebug调试。

 

如果大家有什么疑问或者有什么问题想要和我探讨,希望大家关注微信公众平台:程序员互动联盟(coder_online)

这里有你想要的。

 

内容概要:本文档详细介绍了在 Windows平台上检出和构建 Chromium浏览器的完整流程,包括系统要求、环境配置、代码获取、构建设置以及优化建议。首先明确了硬件和软件需求,如内存、磁盘空间、Visual Studio版本等。接着阐述了如何安装和配置必要的开发工具,如 Git、depot_tools等,并指导读者完成 Chromium源码的检出。文档还提供了多种优化构建速度的方法,包括调整 GN参数、使用 sccache、Reclient等工具。最后,讲解了如何运行浏览器、执行测试以及生成安装包,并简要介绍了在 Visual Studio中编辑和调试 Chromium的方法。 适合人群:具备一定编程基础,尤其是对 C++和 Windows开发环境有一定了解的研发人员,以及对浏览器底层技术感兴趣的开发者。 使用场景及目标:①帮助开发者在本地环境中搭建 Chromium开发环境,进行二次开发或定制化开发;②提高构建效率,减少构建时间和资源消耗;③为开发者提供详细的调试指南,方便排查和解决问题。 其他说明:本文档适用于 Windows平台,提供了详尽的操作步骤和命令行指令,确保开发者能够顺利地完成 Chromium的编译和调试。同时,针对常见的构建问题给出了具体的解决方法,帮助开发者克服可能遇到的技术障碍。此外,文档还提到了一些优化技巧,如启用 fsmonitor、untracked cache等,进一步提升开发体验。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值