如何简单快速调试高大上的谷歌浏览器
上一篇我們簡單的將了在Ubuntu上編譯chromium,android?content_shell_apk的編譯,一切順利的就能生成apk。但是我們僅僅只是照搬了人家google開源的東西,作為一個(gè)開發(fā)者我們應(yīng)帶著探索的精神,都說它穩(wěn)定,速度快。它為什么這么快、穩(wěn)定? 帶著這一系列的問題,我們?nèi)W(xué)習(xí)理解它,去搞明白它的原理、架構(gòu)。
所以......?
一切精妙的東西最終又歸結(jié)到源碼上,直到我們了解它熟悉它。怎么快速的的了解熟悉它呢?不外乎2點(diǎn)
1、大量的代碼閱讀
2、跟蹤調(diào)試代碼
今天我們就簡單的學(xué)習(xí)一下在Ubuntu下簡單調(diào)試chromium代碼
首先我們必須弄個(gè)Debug調(diào)試版本在Ubuntu上運(yùn)行調(diào)試。
編譯步驟:
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個(gè)左右文件其中有chrome可執(zhí)行程序和庫。
調(diào)試:
調(diào)試多進(jìn)程最簡單的方法是用 attach pid?
shell下:gdb src/out/Debug/chrome 啟動到gdb輸入后用 r -no-sandbox (沙箱模式無法運(yùn)行,有待研究)
ps -ax 查看進(jìn)程id
或者用pstree -p|grep chrome
再新打開的shell輸入sudo gdb (有權(quán)限限制必須用root權(quán)限)
gdb啟動后輸入attach pid 然后加上你要調(diào)試的斷點(diǎn)
我們調(diào)試RenderImage.cpp ?layout 函數(shù)在繪制進(jìn)程中調(diào)用堆棧
有了函數(shù)調(diào)用堆棧順序,你有不理解不清楚的地方加個(gè)斷點(diǎn),查看堆棧一切都這么簡單。
Debug調(diào)試只能起到輔助作用,學(xué)習(xí)還是需要我們理解框架、大量閱讀源碼。
如果大家對本系列文章有疑問,可以直接在公眾號留言,小編第一時(shí)間聯(lián)系原創(chuàng)作者幫你耐心解答。
技術(shù)人員都有自己的情懷,深陷其中而不被理解,歡迎關(guān)注個(gè)人微信公眾平臺:程序員互動聯(lián)盟(coder_online),一個(gè)開發(fā)人員的家,來訴說自己的故事。
轉(zhuǎn)載于:https://www.cnblogs.com/2010wuhao/p/4420262.html
總結(jié)
以上是生活随笔為你收集整理的如何简单快速调试高大上的谷歌浏览器的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: JSP分页技术的实现(利用当前页进行前后
- 下一篇: C语言常用字符串操作函数大全详解(str