使用windbg調試windows下的程序,只要有符號文件,問題定位分分鐘的事。下面主要講一下使用windbg調試chromium。有些是從官 網上對翻過來的,若是你們看不明白,能夠直接加咱們的公衆號:程序員互動聯盟(coder_online)來進行互動。 程序員
Windbg是一個強大的免費工具,它比起VisualStudio的調試器還要強大,可以看到當前的內存棧等信息,可是也比那個難用(和Linux下 的gdb差很少)。你們能夠去微軟官網下載最新版本安裝,官網有兩個版本:32位和64位。咱們使用32位來調試chromium。 面試
初始化 windows
1.設置符號路徑 api
打開windbg,文件菜單->符號文件路徑(快捷鍵ctrl+s) 微信
這裏假設c:\code\symbols這個是你符號文件存儲的位置(這個能夠本身隨意設置,可是必須保證有足夠的空間,找個空盤符有個10G左右的,新建一個文件夾,之後就別管了),設置符號路徑以下: 網絡
SRV*c:\code\symbols*http://msdl.microsoft.com/download/symbols;SRV*c:\code\symbols*https://chromium-browser-symsrv.commondatastorage.googleapis.com 微信公衆平臺
2.在視圖窗口中能夠選擇顯示一些窗口 工具
3.使用文件下的一些功能去加載想要調試的進程或者可執行文件 學習
4.設置源碼路徑 網站
若是想直接定位到源碼位置,能夠設置源碼路徑:文件->源碼路徑,最好是本地代碼,直接指定chromium網絡地址不太現實:
使用windbg調試chromium比較重要的一點是,它能夠調試子進程。一個比較簡單的方法就是在使用「Open Executable」打開窗口時,選中下面的選項,如圖所示:
也能夠經過attach來調試運行的進程,使用detach來解除調試進程。
#重要說明
(1) windbg命令分爲標準命令,元命令和擴展命令。
標準命令提供最基本的調試功能,不區分大小寫。如:bp g dt dv k等
元命令提供標準命令沒有提供的功能,也內建在調試引擎中,以.開頭。如.sympath .reload等
擴展命令用於擴展某一方面的調試功能,實如今動態加載的擴展模塊中,以!開頭。如!analyze等
(2) 進入調試狀態時,直接回車可重複執行上一條命令;按上下方向鍵能夠瀏覽和選擇之前輸入過的命令
(3) 神奇的Tab鍵,進行命令補全;ESC清除當前命令輸入框中的文本
(4) 使用;做爲分隔符,能夠在同一行輸入多條命令
(5) 下圖紅色框中的「0:047」。【0爲當前調試會話的進程號;047爲調試會話的線程號】
(6) 當命令提示符顯示*BUSY*時,即便命令輸入框能夠輸入命令,但輸入的命令不會當即被執行,要等windbg空閒時才能執行。
可以使用Ctrl + Break來終止一個長時間未完成的命令。
若是你們想更深刻了解windbg的知識,能夠去官方網站學習。另外推薦一本學習的書籍《軟件調試》。
若是你們有什麼想法或者疑問,請關注咱們的公衆號,及時溝通,這裏有各類大牛幫你解決問題。
歡迎關注微信公衆平臺:程序員互動聯盟(coder_online),一個開發人員的家,來訴說本身的故事。
轉載請註明公衆號名稱