共用方式為


!bpid

!bpid 擴充功能會要求目標計算機上的進程闖入調試程式,或要求使用者模式調試程式附加至目標計算機上的進程。

    !bpid [Options] PID 

參數

選擇
控制此命令的其他活動。

Option 的有效值會出現在下表中。

-a

將新的使用者模式調試程式附加至 PID指定的進程。 使用者模式調試程式會在目標計算機上執行。

-s

在 PID指定的使用者模式進程中斷之前,新增在 WinLogon 進程中立即發生的斷點。 這可讓用戶在嘗試動作之前先驗證要求。

-w

將要求儲存在目標計算機的記憶體中。 然後,目標系統可以重複要求,但通常不需要此要求。

PID
指定目標電腦上所需進程的進程識別碼。 如果您使用此選項來控制目標電腦上的使用者模式調試程式, PID 應該是目標應用程式的進程識別碼,而不是使用者模式調試程式。 (因為進程標識碼通常以十進位格式列出,所以您可能需要以 0n 為前置詞,或將它轉換成十六進位格式。

DLL

Kdexts.dll

x86 型 x64 型目標計算機上支援這個擴充功能命令。

備註

從使用者模式調試程式將輸入和輸出重新導向至核心調試程式時,此命令特別有用。 它會導致使用者模式目標應用程式中斷至使用者模式調試程式,進而要求核心調試程式的輸入。 如需詳細資訊,請參閱 從核心調試程式控制使用者模式調試程式

如果此命令用於另一種情況,則使用者模式進程會呼叫 DbgBreakPoint。 這通常會直接中斷至核心調試程式。

-s 選項會在指定的進程中斷之前,在 WinLogon 中造成中斷。 如果您想要在 WinLogon 的進程內容中執行偵錯動作,這會很有用。 g (Go) 命令接著可用來繼續進入第二個中斷。

請注意,有一些方法,此延伸模組無法執行:

  • 缺少資源。 !bpid 擴充功能會將線程插入目標進程,因此系統必須有足夠的資源來建立線程。 使用 -a 選項需要更多的系統資源,因為 !bpid -a 必須在目標計算機上執行調試程式的完整實例。

  • 載入器鎖定已保留。 !bpid 和 !bpid -a 都需要線程在目標進程中執行,才能讓它進入調試程式。 如果另一個線程持有載入器鎖定, 則 !bpid 線程將無法執行並中斷調試程式。 因此,如果 !bpid 在目標進程有足夠的使用者模式記憶體可用時失敗,則載入器鎖定可能會保留。

  • 缺少許可權。 !bpid 擴充功能的作業需要足夠的許可權,WinLogon 才能建立遠端線程,並將調試程式附加至指定的進程。

  • 無法存取ntsd.exe。 如果在已知路徑中找不到ntsd.exe,!bpid 將無法設定適當的 PID。 請注意,Windows Vista 預設不包含ntsd.exe。