如何简单快速调试高大上的谷歌浏览器
来源:互联网 发布:javascript 控制台输出 编辑:程序博客网 时间:2024/05/22 07:54
上一篇我们简单的将了在Ubuntu上编译chromium,android content_shell_apk的编译,一切顺利的就能生成apk。但是我们仅仅只是照搬了人家google开源的东西,作为一个开发者我们应带着探索的精神,都说它稳定,速度快。它为什么这么快、稳定? 带着这一系列的问题,我们去学习理解它,去搞明白它的原理、架构。
所以......
一切精妙的东西最终又归结到源码上,直到我们了解它熟悉它。怎么快速的的了解熟悉它呢?不外乎2点
1、大量的代码阅读
2、跟踪调试代码
今天我们就简单的学习一下在Ubuntu下简单调试chromium代码
首先我们必须弄个Debug调试版本在Ubuntu上运行调试。
编译步骤:
1、build/install-build-deps.sh
2、build/gyp_chromium-Dflag1=value1-Dflag2=value2
3、export GYP_DEFINES="flag1=value1 flag2=value2"
4、ninja-v-Cout/Debug chrome
编译成功后会在src/out/Debug 下生成300个左右文件其中有chrome可执行程序和库。
调试:
调试多进程最简单的方法是用 attach pid
shell下:gdb src/out/Debug/chrome 启动到gdb输入后用 r -no-sandbox (沙箱模式无法运行,有待研究)
ps -ax 查看进程id
或者用pstree -p|grep chrome
再新打开的shell输入sudo gdb (有权限限制必须用root权限)
gdb启动后输入attach pid 然后加上你要调试的断点
我们调试RenderImage.cpp layout 函数在绘制进程中调用堆栈
有了函数调用堆栈顺序,你有不理解不清楚的地方加个断点,查看堆栈一切都这么简单。
Debug调试只能起到辅助作用,学习还是需要我们理解框架、大量阅读源码。
如果大家对本系列文章有疑问,可以直接在公众号留言,小编第一时间联系原创作者帮你耐心解答。
技术人员都有自己的情怀,深陷其中而不被理解,欢迎关注个人微信公众平台:程序员互动联盟(coder_online),一个开发人员的家,来诉说自己的故事。
- 如何简单快速调试高大上的谷歌浏览器
- 如何简单快速调试高大上的谷歌浏览器
- 如何简单快速调试高大上的谷歌浏览器
- 如何简单快速调试高大上的谷歌浏览器
- 高大上的浏览器数据引擎IndexDB
- 快速集成高大上的Banner
- 如何设计一个“高大上”的 logo
- 如何使你的vim高大上?
- 如何配置一个高大上的AndroidStudio
- 18个高大上的浏览器小技巧
- 如何将你的vim配置的“高大上”
- 如何做个高大上的APP开发者
- 如何使用高大上的方法调参数
- 使用谷歌浏览器简单的调试网页和脚本
- “高大上”的位运算
- 高大上的链路层简介
- 又一次高大上的培训!
- 我的高大上专有名词
- Linux练习题2
- 统计 水NOJ 1599
- Linux C/C++ 模板:类模板成员特化
- iOS 获取网络制式
- 结果集中获取记录的4种方法
- 如何简单快速调试高大上的谷歌浏览器
- Odoo(OpenERP)与SAP的对比
- 渗透测试之DNS暴力破解fierce教程
- iOS 判断名称是否合法
- Linux C/C++ 模板:成员模板
- ZOJ 3659 Conquer a New Region【并查集】
- windows下使用linux命令
- 滑雪比赛(记忆dp)
- LeetCode - Permutations