附上上幾篇文章地址,方便你們查看:python
下載源碼程序員
編譯源碼web
目錄結構chrome
連續不斷的事情,時間比較緊張,可是仍是沒有把這個系列的文章丟掉,由於這也是對本身知識的總結吧。提倡你們多寫寫,之後再看的時候會有種莫名的小激動。windows
上週寫的是chromium的目錄結構,好像你們不太感興趣,在我看來這部分很重要。開頭有連接地址,你們想看能夠再看看。微信
從源碼下載到編譯,到目錄結構,今天終於到了重要的環節,調試。架構
在windows上,調試工具都是使用微軟自家的產品:Visual Studio或者winDBG(windebug)。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)
這裏有你想要的。