重新附加至目標應用程式

如果偵錯工具凍結或停止回應 (,也就是當您執行使用者模式偵錯時當 機) , 您可以將新的偵錯工具附加至現有的進程。

注意 只有 Microsoft Windows XP 和更新版本的 Windows 才支援此方法。 這個方法不取決於偵錯工具最初建立進程,還是附加至現有的進程。 這個方法不取決於您是否使用 -pd 選項。

若要將偵錯工具重新附加至現有的目標應用程式,請執行下列動作:

  1. 判斷目標應用程式的進程識別碼

  2. 啟動 CDB 或 WinDbg 的新實例。 使用 -pe 命令列選項。

    Debugger -pe -p PID 
    

    您也可以使用其他 命令列選項

    您也可以使用 .attach (附加至 Process) 命令搭配 -e 選項,從休眠偵錯工具進行連線。

  3. 附加完成之後,結束原始偵錯工具程式。

  4. 如果進程未正確回應,它可能會有太高的暫停計數。 您可以使用 ~m (Resume Thread) 命令來減少暫停計數。 如需暫停計數的詳細資訊,請參閱 控制進程和執行緒

如果原始偵錯工具仍正常運作,此方法可能無法運作。 這兩個偵錯工具正在競爭偵錯事件,而 Windows 作業系統不一定會將所有偵錯事件指派給新的偵錯工具。

如果在附加新的偵錯工具之前結束原始偵錯工具,則也會關閉目標應用程式。 不過, (,如果附加 了 -pd 選項的偵錯工具,然後正常結束,則目標應用程式會繼續執行。在此情況下,第二個偵錯工具可以附加至目標應用程式,而不使用 -pe 選項.)

如果您已經對進程進行偵錯,而且想要從進程中斷連結,但讓它凍結在偵錯狀態中,您可以使用 .abandon (放棄進程) 命令。 在此命令之後,任何 Windows 偵錯工具都可以使用本主題所述的程式重新附加至進程。