2014-03-07 28 views

回答

4

.process也適用於內核轉儲。首先,你可以使用

!process 0 0 myprocess.exe 

找到你的過程,然後切換到使用

.process <address> 

該過程,其中<地址>是後過程十六進制數。

請注意,您仍在進行內核調試,並且您只有該進程的物理內存可用(又名工作集)。大多數虛擬地址空間可能會交換到磁盤,您無法像在用戶模式下那樣分析該進程(特別是對於需要完整.NET堆的.NET程序)。

7

作爲Thomas的迴應的後續,您可以使用.process/p/r。這將設置您的用戶模式上下文並重新加載用戶模式符號。這將使你在這個新的進程上下文中的後續線程命令能夠顯示堆棧的用戶模式側。如果使用.thread/p/r知道目標線程,則可以跳過進程導航。

1

!dml_proc擴展提供了一種方便的方式切換到用戶使用DML標記繪製的菜單:example

3
  1. 查找的ProcessID

    !process 0 0 process.exe enter image description here

  2. 使用的ProcessID找到線程ID

    !process <ProcessID> enter image description here

  3. 切換到線程

    .thread /p /r <ThreadID>

相關問題