最近看《寒江獨釣-windows核心安全程式設計》裡面開始的用windbg除錯虛擬機器驅動連線總是失敗:如下圖:
在虛擬機器上修改後的boot.ini檔案內容如下:
[boot loader]
timeout=30
default=multi(0)disk(0)rdisk(0)partition(1)/windows
[operating systems]
multi(0)disk(0)rdisk(0)partition(1)/windows="microsoft windows xp professional" /noexecute=optin /fastdetect
multi(0)disk(0)rdisk(0)partition(1)/windows="microsoft windows xp professional" /noexecute=optin /fastdetect/debug /debugport=com1 /baudrate=115200
可是總是連線不上,在網上差了資料才知道,vm建立的虛擬串列埠有時是com2埠,裝置名稱為serial port2,在vm上的系統的硬體管理器上會發現只有com2埠,而沒有com1口。此時boot.ini的設定是錯誤的。應該將boot.ini檔案改為
[boot loader]
timeout=30
default=multi(0)disk(0)rdisk(0)partition(1)/windows
[operating systems]
multi(0)disk(0)rdisk(0)partition(1)/windows="microsoft windows xp professional" /noexecute=optin /fastdetect
multi(0)disk(0)rdisk(0)partition(1)/windows="microsoft windows xp professional" /noexecute=optin /fastdetect/debug /debugport=com2 /baudrate=115200
建立命名管道:
修改windbg的快捷方式目標為:
"d:\debugging tools for windows (x86)\windbg.exe" -b -k com:port=\\.\pipe\com_2,baud=115200,pipe
虛擬機器進入debug啟動選項,windbg命令kd>g,就可以連線了:
windbg 和 vmware 單機除錯步驟
1 先在vmware裡選擇除錯模式讓虛擬機器停止,等待windbg發出 g命令。2 開啟windbg,出現斷點提示,輸入g,虛擬機器繼續執行。dbgbreakpoint 放在需要除錯的地方重新編譯驅動程式 或加入軟斷點 asm int 3 4 用ddk來編譯驅動,輸入build czg 把編譯好的驅...
Windbg除錯異常
用windbg分析包含異常資訊的dump檔案時,往往當前棧幀已不正確,可通過如下步驟找回 1 teb,找到stackbase和stacklimit 2 通過.cxr命令將異常上下文恢復到相關暫存器 如何找到異常上下文的位址呢?方法一 dds dps dqs stacklimit stackbase ...
windbg除錯技巧
1 64位機器上執行32位程式得到的dump,需要先進行轉換 load wow64exts sw2 載入符號表 系統符號表 srv d mylocalsymbols 吵雜模式符號匹配 有時候 沒大改,但重編了導致之前的pdb沒有了 符號載入,吵雜模式 強制匹配符號 symopt 0x40 sym n...