`
damengjiejie
  • 浏览: 9846 次
  • 性别: Icon_minigender_1
  • 来自: 北京
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

调试chromium的快捷方式

 
阅读更多

上一篇我们简单的将了在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),一天一篇大牛的技术原创,一个开发人员的家,来诉说自己的故事。

摘自:http://my.oschina.net/u/2335812/blog/398433

分享到:
评论

相关推荐

    chromium命令行参数1

    此参数没有提供具体描述,通常这可能是用于获取命令行帮助或显示可用参数列表的快捷方式。 4. **--accept-resource-provider** 这个标志表示允许设置资源提供者,以便为Cast接收器提供资源。它对于应用或者服务来...

    chromium-win64.zip

    解压后,根据个人习惯可以创建桌面快捷方式,方便快速启动浏览器。值得注意的是,由于Chromium不包含内置的Flash Player,用户可能需要单独安装Adobe Flash插件才能播放某些网页的Flash内容。 总之,"chromium-win...

    vue 谷歌调试工具devtool

    总的来说,Vue Devtools 是前端开发中的一把利器,尤其是在Windows环境下,通过简单地拖拽`.crx`文件安装,使得Vue.js的调试变得轻松快捷。了解和掌握如何使用Vue Devtools,对于提升开发效率和代码质量具有重大意义...

    Google浏览器

    这个可执行文件会处理所有必要的设置,包括注册表项、快捷方式创建、系统服务配置等,以确保Chrome能够顺利运行。在Windows操作系统中,双击此文件即可启动安装流程,按照提示逐步完成设置。 在性能优化上,Chrome...

    nwjs-sdk-v0.42.0-win-x64.zip

    同时,它还可以创建桌面快捷方式,与系统托盘交互,以及处理窗口事件等。 7. **API接口**:nw.js提供了丰富的API接口,例如`window.nw.require`用于加载Node.js模块,`window.chrome`对象则提供了对Chromium特性的...

    VSCodeUserSetup-x64-1.50.1.zip

    VSCodeUserSetup-x64-1.50.1.zip是一个...安装过程中,用户可以选择自定义安装路径、是否创建桌面快捷方式以及是否设置为默认代码编辑器等选项。安装完成后,用户即可在Windows系统上享受VSCode带来的高效开发体验。

    vscode.docx

    - **自定义安装**:在安装过程中,用户可以自定义安装位置、选择是否创建桌面快捷方式等。 #### 三、VS Code 的配置与使用 1. **界面语言设置**: - **语言插件**:VS Code 默认使用英语界面,但用户可以通过...

    depot_tools_02

    - `git.bat`和`gcl.bat`:这两个脚本可能分别是对Git命令行的快捷方式和Google代码提交工具的封装。 - `chrome-update.bat`:类似于`chrome-update-create-task.bat`,可能用于更新Chrome或者其他相关组件。 - `...

    chrom linux 77.0.3859.0版本

    用户通常需要将这些文件放置到正确的位置并创建快捷方式来启动浏览器。 8. **安装和使用**:在Linux系统中,用户可以通过命令行或图形化包管理器来安装Chrome,或者手动解压并执行可执行文件。一旦安装完成,可以...

    chrome110chrome110chrome110

    6. **用户体验改进**:可能包含对用户界面的调整,如菜单布局的优化,或是新增快捷方式以提高效率。 7. **开发者工具**:对于开发人员,新版本可能提供了新的调试工具或增强了现有工具的功能,帮助他们更高效地开发...

    postman压缩安装文件

    安装过程中,该文件将设置Postman的快捷方式、配置文件和必要的运行时环境。 2. **Postman启动器**:在某些版本中,可能包含一个启动器,它帮助用户打开并管理Postman实例,特别是当有多个版本并存时。 3. **...

    谷歌浏览器免安装

    总之,谷歌浏览器免安装版是一种方便快捷的使用方式,它保留了谷歌浏览器的所有优点,同时避免了传统安装带来的限制,是许多用户和开发者的选择。不过,需要注意的是,由于缺少常规安装过程,可能无法享受到某些系统...

    electron-vue.zip

    nsis-3.0.3.2.7z 提供了 nsis 的稳定版本,它支持自定义安装脚本,允许开发者根据需要定制安装过程,包括设置安装路径、注册文件、启动菜单快捷方式等。在 Electron Vue 项目中,nsis 可用于生成专业且用户友好的...

    cefsharp63 32位版本支持mp3 mp4 flash 插件

    CEFSharp 是一个开源项目,它将Chromium Embedded Framework (CEF)与.NET框架相结合,使得开发者能够在Windows、Linux和macOS平台上构建基于Web的桌面应用程序。CEFSharp提供了C#和VB.NET的API,使得.NET开发者可以...

    谷歌浏览器安装包 Google Chrome.exe

    安装过程中,用户可以选择自定义安装路径、设置默认浏览器、是否创建桌面快捷方式等选项。 3. **前端开发与Chrome的关系**: - **开发者工具**:Chrome内置了一套强大的开发者工具,如元素检查、网络请求分析、...

    Majestic是一款用Jest运行测试的electron程序

    它结合了Chromium和Node.js,使开发者可以利用Web前端的优势同时访问操作系统级别的功能。通过 Electron,开发者可以构建出与原生应用无异的用户体验。 **Jest** 是一个流行的JavaScript测试框架,由Facebook维护。...

    浏览器插件【JSON Viewer】

    这款插件的主要目标就是将原始的JSON数据格式化为整洁、易读的树形结构,便于开发者进行调试和分析。 首先,我们来看看JSON Viewer插件的核心功能。它能够自动检测页面中的JSON字符串,并提供一个友好的视图来展示...

    chrome_installer

    标题“chrome_installer”指的是谷歌浏览器的安装程序,通常用于在...综上所述,chrome_installer.exe文件是Google Chrome浏览器安装过程中的关键组件,它确保用户能够方便快捷地安装和更新这款全球最受欢迎的浏览器。

    Python库 | gerapy_pyppeteer-0.0.1-py2.py3-none-any.whl

    1. **Python 轮子文件(Wheel)**: 轮子文件是Python的预编译包格式,它使得安装过程更快捷,因为不需要通过`setup.py`脚本进行构建和编译步骤。`.whl`文件通常在`pip install`命令下直接安装,提高了Python包的部署...

    Snippet.codes-crx插件

    2. **快捷方式与插件面板**:该插件可能提供了快捷方式或浏览器工具栏图标,点击即可打开插件面板,展示所有保存的代码片段。用户可以通过搜索框快速定位所需代码,或者通过标签筛选,提高工作效率。 3. **上下文...

Global site tag (gtag.js) - Google Analytics