您好,登錄后才能下訂單哦!
上一篇我們簡單的將了在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
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。