如何调试Blink?

内容
尽管有很多工具和技巧可用于调试Blink,这个文章的重点调试Blink除布局測试之外的feature。
1 介绍
2 Linux
2.1 入门
2.2 启动Debugger
3 实用的工具
3.1 Debugging functions
3.2 Blink GDB python library
4 打印 back trace
4.1 利用ASSERT打印符号
4.2 Use Chromium's StackTrace
4.3 利用BACKTRACE() 打印符号
主要有两种途径进入Blink:通过调试Chromium二进制文件本身或content_shell。Blink调试大多数情况,后者是建议的选项。由于它大大降低了尺寸和复杂性。这意味着我们须要build content_shell,相比較而言,这应该更简单、使之成为我们构建目标的更简单的方法。
把content_shell本身作为參数。后面跟着要执行Blink的HTML文件,这样来执行content_shell。
此外,最简单的类型调试是:你可能想要做的一个是看看页面载入后的主要的页面结构(在这Blink的内部结构被称为布局树。不要与DOM树或Frame树混淆了:)。
你能够用一个简单的命令行选项做到这一点:
content_shell --dump渲染树的test.html
启动调试器
调试Linux上的content_shell通经常使用GDB完毕。如果你正在使用content_shell,你可能会想在单进程模式下执行,当然。除非,你正在处理线程问题。
单进程模式下执行将极大地简化设置,并加快调试过程。这样做非常easy。仅仅要用--single进程标志启动content_shell。
一个常见的GDB命令是:
gdb --args content_shell --single-process test.html
假设您无法使用--single-,你能够使用--renderer-启动-对话框来取代。仅仅需content_shell与正常运行的标志,你通过它以及--renderer-启动,对话框渲染器将处于暂停状态,并同意您在继续执行之前附加一个调试器。
一般实用的调试工具
调试功能
您能够使用GDB命令打印显示它们。以下是一些Blink的调试功能:
showTreeForThis()节点和LayoutObjects输出DOM树
showLayoutTreeForThis()LayoutObjects输出布局树
showLineTreeForThis()LayoutObjects和InlineBoxes输出的内框树关联的block flow。标志着与此相关的一个全部匹配的行内框。
showDebugData()DisplayItemLists输出的显示项目的列表和相关联的调试数据
如果一个局部变量child是一个LayoutObject,以下将打印布局树:
(GDB)print child> showLayerTreeForThis()
Blink GDB Python库
当使用支持Python中的GDB。还有有用的功能,能够使一些Blink的类型更easy、更方便输出,比如LayoutUnit和LayoutSize类美丽的打印出来。我们能够在third_party/ WebKit的/工具/ GDB / webkit.py找到它。
本文属原创,转载请注明出处。违者必究
关注微信公众平台:程序猿互动联盟(coder_online)。你能够第一时间获取原创技术文章。和(java/C/C++/Android/Windows/Linux)技术大牛做朋友。在线交流编程经验。获取编程基础知识。解决编程问题。程序猿互动联盟。开发者自己的家。

如何调试Blink?的更多相关文章
- 使用微信web开发者工具调试微信企业号页面(前端页面,已发布在服务器上的)
前几天写了一篇使用fiddler调试微信端页面的,然后博友评论说使用fiddler太麻烦了,推荐使用微信web开发者工具调试微信页面,这两天弄着玩了一下,很强大.这篇文章只是做一个记录,方便自己以后使 ...
- [LED]如何配置LCD背光和LED,调试方法
[DESCRIPTION] 如何配置LCD背光和LED,调试方法 [SOLUTION]LCD背光和LED配置文件alps/custom/<proj name>lk/cust_leds.ca ...
- 【转】.NET多种WebKit内核/Blink内核浏览器初步测评报告
第1篇:.NET多种WebKit内核/Blink内核浏览器初步测评报告 本文转自“吾乐吧软件站”,原文链接:http://www.wuleba.com/?p=23590 报告研究时间:2013-10- ...
- WPF.UIShell UIFramework之自定义窗口的深度技术 - 模态闪动(Blink)、窗口四边拖拽支持(WmNCHitTest)、自定义最大化位置和大小(WmGetMinMaxInfo)
无论是在工作和学习中使用WPF时,我们通常都会接触到CustomControl,今天我们就CustomWindow之后的一些边角技术进行探讨和剖析. 窗口(对话框)模态闪动(Blink) 自定义窗口的 ...
- 如何配置LCD背光和LED,调试方法
LCD背光和LED配置文件 alps/custom/<proj name>lk/cust_leds.c alps/custom/<proj name>/kernel/leds/ ...
- nodejs的调试
js的调试始终是一个比较麻烦也是比较困难的事情,从最原始的alert调试,到火狐的firebug工具,在到后来各个浏览器厂商的调试工具.调试工具的发展历程,也可以看出由JS构建的业务和技术逻辑越来越复 ...
- 微信web开发者工具调试
微信web开发者工具调试 前几天写了一篇使用fiddler调试微信端页面的,然后博友评论说使用fiddler太麻烦了,推荐使用微信web开发者工具调试微信页面,这两天弄着玩了一下,很强大.这篇文章只是 ...
- windows程序员进阶系列:《软件调试》之Win32堆
win32堆及内部结构 Windows在创建一个新的进程时会为该进程创建第一个堆,被称为进程的默认堆.默认堆的句柄会被保存在进程环境块_PEB的ProcessHeap字段中. 要获得_PEB的地址, ...
- 使用VSCode和VS2017编译调试STM32程序
近两年,微软越来越拥抱开源支持跨平台,win10搭载Linux子系统,开源VSCode作为跨平台编辑器,VS2017官方支持了Linux和嵌入式开发功能. ST也是,近两年开发的软件工具基本都是跨平台 ...
随机推荐
- mysql和mongodb的区别
1.mongodb的概括 MongoDB(文档型数据库):提供可扩展的高性能数据存储 2.mongodb的功能概括 (1)基于分布式文件存储 (2)高负载情况下添加更多节点,可以保证服务器性能 (3) ...
- docker mysql镜像忽略表名大小写
原文:docker mysql镜像忽略表名大小写 1.安装mysql镜像 docker pull mysql/mysql-server 2.运行mysql docker run --net=host ...
- Android实战简易教程-第二十八枪(Uri转String型实例)
接上一篇文章.我们能够轻易的获取所选图片的uri,那么我们考虑怎样将获取的uri转换成String型的地址呢? 接下来我们通过实例来研究.布局文件和上篇(二十七枪)一致,我们就不再列出,直接看Main ...
- hdoj-5099-Comparison of Android versions
Comparison of Android versions Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (J ...
- arcmap 设置线段的不同颜色(及其它转化)
一: shp 转化为 mxd或导出地图 当时做的第一个shp文件,应该是研一的第二个学期了,都不记得是怎么操作的了. 通过file另存为mxd就可以生成各个shp的arcmap能够直接打开的mxd文 ...
- 9、包、访问控制、import、static、static代码块、final、抽象类、接口、instanceof、多态
1.包 三级命名:公司的尾缀(com).公司名字(baidu).业务(Sale) java.lang:默认包:String.Math,Object,System java.util:工具包 java. ...
- RvmTranslator7.1
RvmTranslator7.1 eryar@163.com RvmTranslator can translate the RVM file exported by AVEVA Plant(PDMS ...
- 语法错误: unexpected ''); ?></span></span></h2> ' (T_CONSTANT_ENCAPSED_STRING), expecting ',' or ';'
语法错误: unexpected ''); ?></span></span></h2>' (T_CONSTANT_ENCAPSED_STRING), expe ...
- ckeidtor编辑器添加图片上传功能
1.ckeditor默认没有上传图片功能,只能通过Url显示图片,图下图 2.首先说明,ckeditor是有上传功能的,只是隐藏了,需要通过配置让它显示 找到ckeditor/plugins/imag ...
- 13.C语言隐藏黑窗口
//预编译,linker链接,Windows模式 #pragma comment(linker,"/subsystem:\"windows\" /entry:\" ...