.attach (附加至行程)

.attach 命令會附加至新的目標應用程式。

.attach [-premote RemoteOptions] AttachOptions PID

參數

RemoteOptions
指定要附加的進程伺服器。 選項與命令列 -premote 選項的選項相同。 如需語法詳細數據,請參閱啟用Smart Client

AttachOptions
指定附加的完成方式。 這可包含下列任一選項:

-b
防止調試程式在附加至目標進程時要求初始中斷。 如果應用程式已暫停,或您想要避免在目標中建立中斷線程,這非常有用。

-e
可讓調試程式附加至已偵錯的進程。 如需詳細資訊,請參閱 重新附加至目標應用程式

-k
開始本機核心偵錯會話。 如需詳細資訊,請參閱 執行本機核心偵錯

-f
凍結所有目標應用程式中的所有線程,但要附加的新目標除外。 這些線程會維持凍結狀態,直到新附加進程發生例外狀況為止。 請注意,初始斷點會限定為例外狀況。 個別 線程可以使用 ~u (Unfreeze Thread) 命令解除凍結。

-r

讓調試程式在附加至目標進程時啟動執行的目標進程。 如果應用程式已暫停,而且您想要繼續執行,這非常有用。

-v
導致指定的進程以非侵入方式進行偵錯。

PID
指定新目標應用程式的進程識別碼。

Environment

項目 說明
模式 僅限使用者模式
目標 僅限即時偵錯
平台 全部

備註

當 CDB 處於休眠狀態,或它已經在偵錯一或多個進程時,可以使用此命令。 當 WinDbg 處於休眠狀態時,就無法使用它。

如果此命令成功,調試程式會在下次調試程式發出執行命令時附加至指定的進程。 如果在一個數據列中使用此命令數次,則必須要求執行次數,才能使用此命令。

由於在非侵入式偵錯期間不允許執行,調試程式一次無法對多個進程進行非侵入性偵錯。 這也表示使用 .attach -v 命令可能會讓已經存在的侵入式偵錯會話變得不太有用。

除非某些線程已凍結或暫停,否則一律會一起執行多個目標進程。

如果您想要附加至新進程並凍結所有現有的目標,請使用 -f 選項。 例如,您可能會在用戶端應用程式中偵錯當機,而想要附加至伺服器進程,而不需要讓用戶端應用程式繼續執行。

如果使用 -premote 選項,新進程將會是新系統的一部分。 如需詳細資訊,請參閱 偵錯多個目標。