Webkit WinLauncher 調試記錄

* 本文環境中使用Win7操做系統,也就是Webkit的Win port *html

環境使用:Win7 + VS2010 + WebKit-r156224 + Safari5.1.7
web

在完成編譯的基礎上,使用Winlauncher進行調試。數據庫

因爲可能的網絡問題(須要使用代理登錄外外網),或者想要針對性的調試某個網頁(本地)時,緩存

能夠在WinLauncher里加載本地網頁,方式是file:///D:/test.html.網絡


但在試驗中,WinLauncher加載file:///D:/test.html會報出一個Frame Load Interrupt的錯誤。spa

因此可使用IIS,對於沒有安裝或者懶得安裝IIS的人,有另外一種方式就是安裝Http File Server (HFS.exe)
操作系統

相關資料請參考:http://baike.baidu.com/view/32490.htm?fr=aladdin代理

聽上去蠻嚇人的,實際只有幾百K:調試

  1. 安裝HFScode

  2. 把編寫的網頁(或下載的)拉到上面

  3. 複製網址到WinLauncher裏,打開

就能夠順利的調試本地網頁了。

調試本地網頁的有點是能夠針對性較強的跟蹤目標代碼,提升效率。


當咱們順利的打開了以網頁(如:109.130.1.2/test.html),咱們再HFS上刪除它,而後從新開啓WinLaunch

再次登陸該網址(如:109.130.1.2/test.html)如發現還能夠登陸,多是因爲緩存致使的、

那麼問題出現了,WinLauncher的緩存在哪裏呢?能夠確定的是不在WebKit-r156224\output\Debug\bin32中。

咱們跟蹤代碼:

String localUserSpecificStorageDirectory()
{
    return cachedStorageDirectory(CSIDL_LOCAL_APPDATA);
}


CSIDL_LOCAL_APPDATA這個是什麼呢?

請參考 http://www.baike.com/wiki/csidl

最終找到WinLauncher使用的Cache.db 在C:\Users\XXXX\AppData\Local\Apple Computer中。

可使用Sqlite(或其餘數據庫)打開。


WinLauncher沒有提供清除緩存的功能,能夠直接刪掉該Cache.db,達到清除緩存的效果。

以後再次運行WinLauncher,並再次輸入該網址(如:109.130.1.2/test.html),會遇到404的錯誤 說明該網頁已經不存了。


至此咱們可使用WinLauncher進行後續的調試,來理解和閱讀webkit 的代碼了。


WX

相關文章
相關標籤/搜索