1. 程式人生 > >windbg雙機除錯時對R3函式下斷

windbg雙機除錯時對R3函式下斷

對於剛接觸windbg的童鞋可能想在雙機除錯的環境下檢視某個使用者態函式的反彙編,可能會直接下直接斷點,這是會產生如下提示的錯誤 
Bp expression ‘*******’ could not be resolvedadding deferred bp
這是因為沒有切換到使用者環境。
可依次執行如下命令
kd> !process 0 0 explorer.exe
PROCESS 81fff020  SessionId: 0  Cid: 0600    Peb: 7ffde000  ParentCid: 05f0
    DirBase: 048401c0  ObjectTable: e19d5188  HandleCount: 371.
    Image: explorer.exe

.process /p /r 81fff020
Implicit process is now 81fff020
.cache forcedecodeuser done
Loading User Symbols
..................................................

.process命令的功能是在核心態除錯時,切換程序CONTEXT。是除錯使用者態模組所必須的命令,因為使用者態模組必然是在程序環境中執行的。使用.process命令時需注意,在切換到目標程序空間後必須強制載入user模組的pdb檔案。在;執行.process /i; g,等待中斷後使用.reload /i /user或.process 時使用/p /r引數。否則lm不能列出程序實際已經載入的使用者態模組,lm u結果會為空。下使用者態程式斷點,檢視記憶體等操作都無法進行。

這裡切換到其他的使用者程序空間也可以,然後就可以對R3函式下斷了