附上上几篇文章地址,方便你们查看:python
下载源码程序员
编译源码chrome
目录结构windows
连续不断的事情,时间比较紧张,可是仍是没有把这个系列的文章丢掉,由于这也是对本身知识的总结吧。提倡你们多写写,之后再看的时候会有种莫名的小激动。微信
上周写的是chromium的目录结构,好像你们不太感兴趣,在我看来这部分很重要。开头有连接地址,你们想看能够再看看。架构
从源码下载到编译,到目录结构,今天终于到了重要的环节,调试。微信公众平台
在windows上,调试工具都是使用微软自家的产品:Visual Studio或者winDBG(windebug)。Chromium也是与时俱进,如今主要使用Visual Studio2013。我今天主要讲使用vs2013调试源码。工具
我在编译代码那一章(http://my.oschina.net/ghost045/blog/395973)的时候曾经讲过生成源码工程的东东,以下:ui
set GYP_MSVS_VERSION=2013spa
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)
这里有你想要的。