.attach (附加至進程)
.attach命令會附加至新的目標應用程式。
.attach [-premote RemoteOptions] AttachOptions PID
參數
RemoteOptions
指定要附加至的進程伺服器。 這些選項與命令列 預先 設定選項的選項相同。 如需語法詳細資料 ,請參閱啟用 Smart Client 。
AttachOptions
指定要如何完成附加。 這可以包含下列任一選項:
-B
防止偵錯工具在附加至目標進程時要求初始中斷。 如果應用程式已暫停,或您想要避免在目標中建立中斷線程,這非常有用。
-e
允許偵錯工具附加至已經偵錯的進程。 如需詳細資訊 ,請參閱重新附加至目標應用程式 。
-K
開始本機核心偵錯會話。 如需詳細資訊,請參閱 執行本機核心偵錯 。
-F
凍結所有目標應用程式中的所有線程,但附加至的新目標除外。 這些執行緒會維持凍結狀態,直到新附加的進程發生例外狀況為止。 請注意,初始中斷點會限定為例外狀況。 個別執行緒可以使用 ~u (Unfreeze Thread) 命令解除凍結。
-R
讓偵錯工具在附加至它時啟動執行的目標進程。 如果應用程式已暫停,而且您想要繼續執行,這非常有用。
-V
使指定的進程以非vasive 方式進行偵錯。
Pid
指定新目標應用程式的進程識別碼。
環境
項目 | 描述 |
---|---|
模式 | 僅限使用者模式 |
目標 | 僅限即時偵錯 |
平台 | all |
備註
當 CDB 處於休眠狀態,或已經偵錯一或多個進程時,可以使用此命令。 當 WinDbg 處於休眠狀態時,就無法使用它。
如果此命令成功,偵錯工具會在下次偵錯工具發出執行命令時附加至指定的進程。 如果在資料列中使用此命令數次,就必須要求執行多次,就像使用此命令一樣多。
由於在非vasive 偵錯期間不允許執行,偵錯工具無法一次對多個進程進行非主動偵錯。 這也表示使用 .attach -v 命令可能會讓已經存在的偵錯會話變得較不實用。
除非某些執行緒已凍結或暫停,否則一律會一起執行多個目標進程。
如果您想要附加至新的進程並凍結所有現有的目標,請使用 -f 選項。 例如,您可能會在用戶端應用程式中偵錯當機,並想要附加至伺服器進程,而不需要讓用戶端應用程式繼續執行。
如果使用 -premote 選項,新進程將會是新系統的一部分。 如需詳細資訊,請參閱 偵錯多個目標。
意見反應
https://aka.ms/ContentUserFeedback。
即將登場:在 2024 年,我們將逐步淘汰 GitHub 問題作為內容的意見反應機制,並將它取代為新的意見反應系統。 如需詳細資訊,請參閱:提交並檢視相關的意見反應