初學Windbg,從主題佈局開始

歡迎轉載:作者:張佩】【原文:http://www.yiiyee.cn/Blog/windbg-theme/

Windbg把和調試相關的所有配置稱爲workspace,這些配置信息包括:調試窗口類型和位置,打開的文件和窗口位置,符號、源碼和可執行文件的路徑。Windbg中包含多種不同類型的workspace:

  1. 基本workspace。打開Windbg並且沒有進行任何調試操作的情況下,使用這個workspace。
  2. 默認workspace。它分爲默認的用戶調試內核調試遠程調試,三種不同類型的默認workspace。
  3. 處理器workspace。內核調試時,根據處理器類型的不同,會配置不同的workspace。不同的處理器類型包括X86、X64和IA64。
  4. 命名workspace。可以把你的配置保存爲一個命名的workspace保存在註冊表中,並且在需要的時候應用它。Windbg軟件本身也會根據你所調試的可執行程序或dump文件,自動保存爲命名workspace。這就是爲什麼你調試了一次HelloWorld程序後,下次再次調試的時候,Windbg會自動打開很多相關的源文件,並自動加載符號的原因。

所有這些workspace的信息都被保存在註冊表中,註冊表的路徑是:

HKEY_CURRENT_USER\Software\Microsoft\Windbg\Workspaces

如果把這個註冊表鍵裏面的內容導出爲xx.reg文件,則可以把這個文件分享給別人,讓別人使用與你相同的配置。在windbg的語境中,這個文件被稱爲主題(Theme)。 舊版的Windbg安裝後,有一個themes.doc文檔,介紹如何使用主題。Windbg的安裝目錄裏面有一個Themes目錄,裏面有幾個預安裝的主題。 windbg-theme1剛安裝好Windbg後打開它,自動加載基本workspace,會發現它裏面沒有任何多餘的配置:沒有任何打開的窗口,顏色配置是白底黑字,沒有色彩高亮。這是最基本的,也是比較沉悶的。 現在要改變這種沉悶,就從Themes開始。 打開Themes目錄後,看到有四種主題,就選擇使用標準主題(standard.reg)。使用方法很簡單:雙擊導入註冊表即可。建議最好先把註冊表中的現有內容清空掉,會更乾淨一些。可以手動,也可以用下面的命令:

reg delete HKCU\Software\Microsoft\Windbg


做好上面一步後,再次打開windbg,會看到界面豐富了很多。有三四個頁表塢(table dock)同時存在,每個dock上有若干打開的窗口,並擁有經過安排的上下佈局。我們不討論佈局的合理性,不過這些常用窗口,在調試過程中確實會用到。默認打開着,會比較省心一點。 會看到有好幾個名爲placeholdx.c文件分佈在各個不同的dock上,這是幹什麼用的呢?原來它是用來代表源文件的。調試過程中自然少不了使用源文件,源文件打開的時候,windbg會找有沒有類型相同的源文件被打開?如果有的話,就把它放在同樣的dock上。否則源文件窗口就是懸浮顯示的。所以這些placeholdx.c文件是給源文件佔位用的,下次打開一個源文件時,會自動掛到相同dock上。 

windbg-theme2

那爲什麼存在好幾個佔位文件呢?我通過實驗發現,windbg會使用最後一次打開的源文件作爲參考。換句話說,它在每個dock上都搞了一個佔位文件,你想使用哪個都可以。但如果要切換dock的話,就要先手動拖動一下,下次就自動換過去了。 

可惜的是,這些主題中不包含色彩高亮內容。調試信息可以分爲這幾種:普通、錯誤、警告、冗長、提示。但是如果這些信息都是以白底黑字顯示的話,就無以區分。所以配置色彩高亮是很有用的。手動配置的方法在windbg界面\view菜單\options\Colors面板中完成的。左圖是配置好之後的效果圖。讀者可以下從文章開始處他對應的Theme文件。

下面是對於各種顏色的解釋:


顏色名稱

描述

Background 背景色,包括命令窗口,源碼和彙編窗口
Text 普通文字顏色,特殊指定文字除外
Current line 當前源代碼、彙編代碼的字體顏色
Breakpoint current line 當前斷點顏色
Enabled breakpoint Enabled斷點顏色
Disabled breakpoint Disabled斷點顏色
Changed data text 變量值、寄存器值發生改變時,高亮顯示的顏色。比如手動改變一個變量後,這個變量會高亮顯示。
Source ... 這裏麪包括各種源代碼的顏色配置:關鍵字、操作符、字符串等等大家可比照Visual Studio或一些文本編輯器中的代碼色彩設置,應是相通的
Normal level command window & background 普通的命令輸出前景及背景顏色
Error level command window& background 命令輸出中錯誤信息的前景及背景顏色
Warning level command window& background 命令輸出中警告信息的前景及背景顏色
Verbose level command window& background 命令輸出中冗長信息的前景及背景顏色
Prompt level command window& background 命令輸出中提示信息的前景及背景顏色,比如用戶輸入的命令在顯示的時候就屬於提示信息。
 
 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章