Windbg内核调试之一: Vista Boot Config设置
生活随笔
收集整理的這篇文章主要介紹了
Windbg内核调试之一: Vista Boot Config设置
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
Windbg進(jìn)行內(nèi)核調(diào)試,需要一些基本的技巧和設(shè)置,在這個(gè)系列文章中,我將使用Windbg過(guò)程中所遇到的一些問(wèn)題和經(jīng)驗(yàn)記錄下來(lái),算是對(duì)Kernel調(diào)試的一個(gè)總結(jié),同時(shí)也是學(xué)習(xí)Windows系統(tǒng)內(nèi)核的另一種過(guò)程。
很多人說(shuō)Windbg不如SoftIce好用, 但是我使用過(guò)程中還是覺(jué)得Windbg能更好的反映系統(tǒng)狀態(tài), 而且相比SoftIce, Windbg更穩(wěn)定(雖然它的部分操作略顯復(fù)雜), 下面介紹Windbg的Kernel模式調(diào)試第一部分: 雙機(jī)連接設(shè)置.
Vista和XP不同, 沒(méi)有boot.ini文件, 需要用bcdedit進(jìn)行啟動(dòng)設(shè)置。(關(guān)于啟動(dòng)數(shù)據(jù)配置編輯器BCD的具體設(shè)置, 參見(jiàn)另一篇文章: (From MS)Vista: 啟動(dòng)配置數(shù)據(jù)編輯器(BCD))
在administrator權(quán)限下, 進(jìn)入command line模式,? 鍵入bcdedit命令, 會(huì)出現(xiàn)以下界面:
??
然后, 設(shè)置端口COM1, baudrate為115200 (除COM1外, 也可以用1394或USB. 1394用起來(lái)比COM口快多了, 當(dāng)然前提是你需要有1394卡及其驅(qū)動(dòng). 很惡心的是Vista不再支持1394的文件傳輸協(xié)議, 但是用windbg雙機(jī)調(diào)試還是可以的)
命令為:
bcdedit?/dbgsettings?{serial?[baudrate:value][debugport:value]?| 1394?[channel:value]?|?usb?}
?
接著, 我們需要復(fù)制一個(gè)開(kāi)機(jī)選項(xiàng), 以進(jìn)入OS的debug模式
命令為:
bcdedit?/copy?{current}?/d?DebugPoint
DebugPoint為選項(xiàng)名稱(chēng), 名字可以自己定義. 然后復(fù)制得到的ID號(hào).?
?
接著增加一個(gè)新的選項(xiàng)到引導(dǎo)菜單
bcdedit?/displayorder?{current}?{ID}
這里的{ID}的ID值是剛生成的ID值.
?
激活DEBUG : bcdedit?/debug?{ID}?ON
這里的{ID}?的ID值還是剛才的ID值.
?
命令執(zhí)行成功后, 重新啟動(dòng)機(jī)器.
選擇DebugPoint登錄,開(kāi)啟Windbg
連接成功, 則顯示如下:
Microsoft?(R)?Windows?Debugger??Version?6.6.0007.5
Copyright?(c)?Microsoft?Corporation.?All?rights?reserved.
Opened?\\.\pipe\com_1
Waiting?to?reconnect...
Connected?to?Windows?Vista?6000?x86?compatible?target,?ptr64?FALSE
Kernel?Debugger?connection?established.
Symbol?search?path?is:?symsrv*symsrv.dll*F:\symbols*http://msdl.microsoft.com/download/symbols
Executable?search?path?is:?
Windows?Vista?Kernel?Version?6000?MP?(1?procs)?Free?x86?compatible
Built?by:?6000.16386.x86fre.vista_rtm.061101-2205
Kernel?base?=?0x81800000?PsLoadedModuleList?=?0x81911db0
System?Uptime:?not?available
Break?instruction?exception?-?code?80000003?(first?chance)
*******************************************************************************
*?????????????????????????????????????????????????????????????????????????????
*???You?are?seeing?this?message?because?you?pressed?either????????????????????
*???????CTRL+C?(if?you?run?kd.exe)?or,????????????????????????????????????????
*???????CTRL+BREAK?(if?you?run?WinDBG),???????????????????????????????????????
*???on?your?debugger?machine's?keyboard.??????????????????????????????????????
*?????????????????????????????????????????????????????????????????????????????
*???????????????????THIS?IS?NOT?A?BUG?OR?A?SYSTEM?CRASH???????????????????????
*?????????????????????????????????????????????????????????????????????????????
*?If?you?did?not?intend?to?break?into?the?debugger,?press?the?"g"?key,?then???
*?press?the?"Enter"?key?now.??This?message?might?immediately?reappear.??If?it?
*?does,?press?"g"?and?"Enter"?again.??????????????????????????????????????????
*?????????????????????????????????????????????????????????????????????????????
*******************************************************************************
nt!RtlpBreakWithStatusInstruction:
81881760?cc??????????????int?????3
總結(jié): 雖然利用VMware虛擬機(jī)能更方便的設(shè)置雙機(jī)的調(diào)試環(huán)境, 而且這種模擬環(huán)境也是大多數(shù)人使用的(方便), 但是如果有雙機(jī)條件的話(huà),? 還是希望大家能夠使用兩臺(tái)機(jī)器, 因?yàn)橛锰摂M機(jī)進(jìn)行Kernel調(diào)試, 真不是一般的慢! 基本就等于死機(jī). 即時(shí)你的主機(jī)內(nèi)存2G, 分給VMware1G, 還是會(huì)相當(dāng)卡(Kerenl模式與User模式不同).
很多人說(shuō)Windbg不如SoftIce好用, 但是我使用過(guò)程中還是覺(jué)得Windbg能更好的反映系統(tǒng)狀態(tài), 而且相比SoftIce, Windbg更穩(wěn)定(雖然它的部分操作略顯復(fù)雜), 下面介紹Windbg的Kernel模式調(diào)試第一部分: 雙機(jī)連接設(shè)置.
Vista和XP不同, 沒(méi)有boot.ini文件, 需要用bcdedit進(jìn)行啟動(dòng)設(shè)置。(關(guān)于啟動(dòng)數(shù)據(jù)配置編輯器BCD的具體設(shè)置, 參見(jiàn)另一篇文章: (From MS)Vista: 啟動(dòng)配置數(shù)據(jù)編輯器(BCD))
在administrator權(quán)限下, 進(jìn)入command line模式,? 鍵入bcdedit命令, 會(huì)出現(xiàn)以下界面:
??
然后, 設(shè)置端口COM1, baudrate為115200 (除COM1外, 也可以用1394或USB. 1394用起來(lái)比COM口快多了, 當(dāng)然前提是你需要有1394卡及其驅(qū)動(dòng). 很惡心的是Vista不再支持1394的文件傳輸協(xié)議, 但是用windbg雙機(jī)調(diào)試還是可以的)
命令為:
bcdedit?/dbgsettings?{serial?[baudrate:value][debugport:value]?| 1394?[channel:value]?|?usb?}
?
接著, 我們需要復(fù)制一個(gè)開(kāi)機(jī)選項(xiàng), 以進(jìn)入OS的debug模式
命令為:
bcdedit?/copy?{current}?/d?DebugPoint
DebugPoint為選項(xiàng)名稱(chēng), 名字可以自己定義. 然后復(fù)制得到的ID號(hào).?
?
接著增加一個(gè)新的選項(xiàng)到引導(dǎo)菜單
bcdedit?/displayorder?{current}?{ID}
這里的{ID}的ID值是剛生成的ID值.
?
激活DEBUG : bcdedit?/debug?{ID}?ON
這里的{ID}?的ID值還是剛才的ID值.
?
命令執(zhí)行成功后, 重新啟動(dòng)機(jī)器.
選擇DebugPoint登錄,開(kāi)啟Windbg
連接成功, 則顯示如下:
Microsoft?(R)?Windows?Debugger??Version?6.6.0007.5
Copyright?(c)?Microsoft?Corporation.?All?rights?reserved.
Opened?\\.\pipe\com_1
Waiting?to?reconnect...
Connected?to?Windows?Vista?6000?x86?compatible?target,?ptr64?FALSE
Kernel?Debugger?connection?established.
Symbol?search?path?is:?symsrv*symsrv.dll*F:\symbols*http://msdl.microsoft.com/download/symbols
Executable?search?path?is:?
Windows?Vista?Kernel?Version?6000?MP?(1?procs)?Free?x86?compatible
Built?by:?6000.16386.x86fre.vista_rtm.061101-2205
Kernel?base?=?0x81800000?PsLoadedModuleList?=?0x81911db0
System?Uptime:?not?available
Break?instruction?exception?-?code?80000003?(first?chance)
*******************************************************************************
*?????????????????????????????????????????????????????????????????????????????
*???You?are?seeing?this?message?because?you?pressed?either????????????????????
*???????CTRL+C?(if?you?run?kd.exe)?or,????????????????????????????????????????
*???????CTRL+BREAK?(if?you?run?WinDBG),???????????????????????????????????????
*???on?your?debugger?machine's?keyboard.??????????????????????????????????????
*?????????????????????????????????????????????????????????????????????????????
*???????????????????THIS?IS?NOT?A?BUG?OR?A?SYSTEM?CRASH???????????????????????
*?????????????????????????????????????????????????????????????????????????????
*?If?you?did?not?intend?to?break?into?the?debugger,?press?the?"g"?key,?then???
*?press?the?"Enter"?key?now.??This?message?might?immediately?reappear.??If?it?
*?does,?press?"g"?and?"Enter"?again.??????????????????????????????????????????
*?????????????????????????????????????????????????????????????????????????????
*******************************************************************************
nt!RtlpBreakWithStatusInstruction:
81881760?cc??????????????int?????3
總結(jié): 雖然利用VMware虛擬機(jī)能更方便的設(shè)置雙機(jī)的調(diào)試環(huán)境, 而且這種模擬環(huán)境也是大多數(shù)人使用的(方便), 但是如果有雙機(jī)條件的話(huà),? 還是希望大家能夠使用兩臺(tái)機(jī)器, 因?yàn)橛锰摂M機(jī)進(jìn)行Kernel調(diào)試, 真不是一般的慢! 基本就等于死機(jī). 即時(shí)你的主機(jī)內(nèi)存2G, 分給VMware1G, 還是會(huì)相當(dāng)卡(Kerenl模式與User模式不同).
總結(jié)
以上是生活随笔為你收集整理的Windbg内核调试之一: Vista Boot Config设置的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: Redux vs Mobx系列(-):i
- 下一篇: ReactNative学习笔记(一)环境