chromium瀏覽器開發系列第四篇:如何調試最新chromium

附上上幾篇文章地址,方便你們查看:python

下載源碼程序員

編譯源碼web

目錄結構chrome


    連續不斷的事情,時間比較緊張,可是仍是沒有把這個系列的文章丟掉,由於這也是對本身知識的總結吧。提倡你們多寫寫,之後再看的時候會有種莫名的小激動。windows

上週寫的是chromium的目錄結構,好像你們不太感興趣,在我看來這部分很重要。開頭有連接地址,你們想看能夠再看看。微信

 

    從源碼下載到編譯,到目錄結構,今天終於到了重要的環節,調試。架構

    在windows上,調試工具都是使用微軟自家的產品:Visual Studio或者winDBGwindebug)。Chromium也是與時俱進,如今主要使用Visual Studio2013。我今天主要講使用vs2013調試源碼。微信公衆平臺

 

    我在編譯代碼那一章(http://my.oschina.net/ghost045/blog/395973)的時候曾經講過生成源碼工程的東東,以下:工具

set GYP_MSVS_VERSION=2013ui

set GYP_GENERATORS=msvs-ninja,ninja

set GYP_DEFINES=component=shared_library

set PATH=C:\depot_tools\python276_bin\;C:\depot_tools\;

python.exe src/build/gyp_chromiumsrc/chrome/chrome.gyp >>log.txt 2>&1

 

    運行成功後,打開src\chrome文件夾,發現下面多了好多文件----都是工程文件。


    若是你已經安裝了vs2013,那麼直接雙擊打開chrome.sln便可。打開後在解決方案資源管理器能夠看到全部的解決方案信息。

 


    點擊展開上圖中的chrome文件夾,選擇chrome解決方案,右鍵設置爲啓動項目,而後直接F5(調試->開始調試)就能夠啓動程序調試了。

 

    若是想以其餘的解決方案爲啓動項目,能夠直接右鍵設置就行。不過須要增長下面一步設置:右鍵打開想要設置的啓動項目的屬性

    點擊左邊的調試選項,設置「命令」,直接將文件地址設置爲chrome.exe的絕對路徑地址

 

這樣就能夠直接選擇從不一樣的解決方案啓動調試了。

 

       chromium是多進程架構,咱們啓動後只能調試主進程,其餘的renderer進程和插件擴展進程是單獨的,不能被直接調試。下面提供幾種方法能夠調試其餘進程:

1.單進程模式

    最簡單的方法是將chromium運行在單進程模式。這樣你會看到整個程序的狀態,沒有額外的工做(雖然它仍會有不少的線程)。使用單進程模式,須要在在Chrome項目屬性調試頁中的命令行參數添加--single-process。這種方法並不完美,由於有些問題不會出如今這個模式。

默認狀況下,Visual Studio選擇Browser/browser.exe爲啓動項目,須要用戶手動選擇chrome解決方案右鍵設置爲啓動項目。

2.啓動chrome的調試log

    在命令行參數添加--enable-logging --v=1,運行期間的log將會保存在文件中,debug版本的放在out\Debug下的chrome_debug.log中,release版本的放在C:\Users\帳戶名\AppData\Local\Chromium\User Data目錄中。

3.使用vs2013自帶的「附加到進程」選項調試

    直接在vs2013中調試時,可使用附加到進程的功能,直接開啓調試後,點擊Tools > Attach to Process附加你須要調試的進程便可。

    若是你想調試的renderer進程的內容發生在進程啓動時,那麼能夠在命令行參數增長--renderer-startup-dialog--no-sandbox這兩個必須同時使用,才能在renderer進程啓動時彈出窗口讓你及時附加到進程上。

 

    另外還有不少有用的參數能夠設置,使用這些參數可讓你爲所欲爲的實現本身想要調試的內容,chromium團隊也在一直努力讓調試變得更簡單實用。其餘的命令能夠查看文件:content_switches.cc,裏面標識了各類參數以及含義。

調試的東西不少,今天就先講這麼多,講多了也難以消化,以後我還會給你們帶來更細緻的講解,包括windebug調試。

 

若是你們有什麼疑問或者有什麼問題想要和我探討,但願你們關注微信公衆平臺:程序員互動聯盟(coder_online)

這裏有你想要的。

 

相關文章
相關標籤/搜索