如何簡單快速調試高大上的Google瀏覽器

來源:互聯網
上載者:User

標籤:

上一篇我們簡單的將了在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),一個開發人員的家,來訴說自己的故事。


如何簡單快速調試高大上的Google瀏覽器

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.