HOW TO:處理附加錯誤
更新:2007 年 11 月
這個主題適用於:
版本 |
Visual Basic |
C# |
C++ |
Web Developer |
---|---|---|---|---|
Express 版 |
||||
Standard 版 |
||||
Pro/Team 版 |
表格圖例:
套用 |
|
不套用 |
|
預設隱藏的命令。 |
當 Visual Studio 偵錯工具附加至執行中的處理序時,該處理序可以包含一或多種程式碼類型。偵錯工具可以附加的程式碼類型為:機器碼、Managed、T-SQL,以及指令碼。這些程式碼類型是在 [附加至處理序] 對話方塊中顯示及選取。
注意事項: |
---|
若要將偵錯工具附加至以 C++ 撰寫的 Managed 程式碼,該程式碼必須發出 DebuggableAttribute。您可以使用 /ASSEMBLYDEBUG 連結器選項連結,將其自動加入程式碼。 |
有時候,偵錯工具可以成功附加至一種程式碼類型,而無法附加至另一種程式碼類型。如果您嘗試附加至遠端電腦上正在執行的處理序,可能會發生這種狀況。遠端電腦可能為某些程式碼類型安裝了遠端偵錯元件,但沒有安裝其他程式碼類型的遠端偵錯元件。如果您嘗試附加至兩個或多個處理序以進行直接的資料庫偵錯,也可能會發生這種狀況。(SQL 偵錯僅支援附加至單一處理序)。
如果偵錯工具能附加至某些程式碼類型 (非全部程式碼類型),您可能會看到類似下列的訊息:
The requested attach was not completed successfully.
Program types successfully attached are:
Common Language Runtime
Native (Win32)
Microsoft T_SQL
Program types that failed to attach are:
Script
如果偵錯工具成功附加到至少一種程式碼類型,您可以繼續偵錯該處理序。您只能偵錯已附加成功的程式碼類型。上述範例訊息顯示該指令碼類型附加失敗。因此,您無法在處理序內偵錯指令碼。處理序中的指令碼仍可執行,但是您將無法在指令碼內設定中斷點、檢視資料,或執行其他的偵錯作業。
如果您需要更多相關資訊以暸解偵錯工具無法附加至程式碼類型的原因,可以嘗試重新附加至該程式碼。
取得程式碼類型為何無法附加的相關資訊
與處理序中斷連結。方法是在 [偵錯] 功能表中按一下 [中斷所有連結]。
重新附加至處理序,並只選取一種程式類型。
在 [附加至處理序] 對話方塊的 [可使用的處理序] 清單中,選取該處理序。
按一下 [選取]。
在 [選取程式碼類型] 對話方塊中,選取 [偵錯這些程式碼類型] 以及之前附加失敗的程式碼類型。清除任何其他程式碼。
按一下 [確定]。[選取程式碼類型] 對話框會關閉。
在 [附加至處理序] 對話方塊中按一下 [附加]。
這時,該附加將完全失敗,您將取得特定的錯誤訊息。