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

接二連三的事情,時間比較緊張,但是還是沒有把這個系列的文章丟掉,因爲這也是對自己知識的總結吧。提倡大家多寫寫,以後再看的時候會有種莫名的小激動。

上週寫的是chromium的目錄結構,好像大家不太感興趣,在我看來這部分很重要。開頭有鏈接地址,大家想看可以再看看。

 

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

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

 

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

set GYP_MSVS_VERSION=2013

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文件夾,發現下面多了好多文件----都是工程文件。

234643_OPXg_2335664.png


    如果你已經安裝了vs2013,那麼直接雙擊打開chrome.sln即可。打開後在解決方案資源管理器可以看到所有的解決方案信息。

234645_Qp7C_2335664.png 


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

 234645_ShTM_2335664.png

    如果想以其他的解決方案爲啓動項目,可以直接右鍵設置就行。不過需要增加下面一步設置:右鍵打開想要設置的啓動項目的屬性

234647_xH16_2335664.png

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

 234647_wWZo_2335664.png

這樣就可以直接選擇從不同的解決方案啓動調試了。

 

       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)

這裏有你想要的。

 27225517_4bEO.jpg


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章