Windbg 32位版本和64位版本的選擇
用慣了Vsiual Studio的兄弟們可能會因?yàn)橄热霝橹鞯脑蛞詾樗械恼{(diào)試器都應(yīng)該像它那樣,其實(shí)不然,當(dāng)你安裝Debugging Tools for Windows的時候,你將發(fā)現(xiàn)有兩個系列的工具,一系列32位的工具和一系列64位的工具。這讓人覺得和費(fèi)解,因?yàn)樵谖覀儼惭bMicrosoft Visual Studio的時候你根本不需要考慮32位還是64位。
如果你正使用windbg調(diào)試工具集(WinDbg, KD, CDB, or NTSD)中的一個,你必須得自己做出選擇。為了選擇合適的調(diào)試工具,你需要知道以下兩點(diǎn):
1. 你的調(diào)試主機(jī)的處理器類型。
2. 你的調(diào)試主機(jī)運(yùn)行的是32位版本的windows還是64位版本的。
PS:運(yùn)行調(diào)試器的計(jì)算機(jī)我們成為調(diào)試主機(jī),被調(diào)試的計(jì)算機(jī)我們稱為目標(biāo)機(jī)。
調(diào)試主機(jī)運(yùn)行32位版本的windows
如果你的調(diào)試主機(jī)運(yùn)行的是32位版本的windows,使用32位的調(diào)試工具(不管此時被調(diào)試的目標(biāo)機(jī)是 x86-based 還是 x64-based)。
x64-based調(diào)試主機(jī)運(yùn)行64位的windows
如果你的調(diào)試主機(jī)使用x64-based的處理器,并且運(yùn)行64位的windows,請參考如下規(guī)則:
如果你在分析dump文件,你可以使用32位或者64位的調(diào)試工具集。(不管dump文件是用戶態(tài)的還是內(nèi)核態(tài)的,也不管這個dump文件是在 x86-based 還是 x64-based的平臺上抓的。)
如果你在進(jìn)行實(shí)時內(nèi)核調(diào)試,你可以使用32位或者64位的調(diào)試工具集(不管此時被調(diào)試的目標(biāo)機(jī)是 x86-based 還是 x64-based)
如果你在進(jìn)行實(shí)時用戶態(tài)調(diào)試,并且調(diào)試器也在同一臺機(jī)器上,對于64位的代碼和32位的 WOW64代碼都需要使用64位的調(diào)試工具集。使用 .effmach命令設(shè)置調(diào)試器的模式。
如果你在實(shí)時調(diào)試32位的用戶態(tài)代碼,但是這些代碼運(yùn)行在一個單獨(dú)的目標(biāo)機(jī)器上,使用32位的調(diào)試工具集。
總結(jié)
只有在實(shí)時用戶態(tài)調(diào)試,并且調(diào)試器也在同一臺64位機(jī)器上的情況下必須用64位的調(diào)試工具集!
原文鏈接:http://www.cnblogs.com/pugang/archive/2012/11/16/2772651.html
【編輯推薦】