DebuggableAttribute.DebuggingModes 列舉

定義

指定 Just-In-Time (JIT) 編譯器的偵錯模式。

此列舉支援其成員值的位元組合。

public: enum class DebuggableAttribute::DebuggingModes
[System.Flags]
public enum DebuggableAttribute.DebuggingModes
[System.Flags]
[System.Runtime.InteropServices.ComVisible(true)]
public enum DebuggableAttribute.DebuggingModes
[<System.Flags>]
type DebuggableAttribute.DebuggingModes = 
[<System.Flags>]
[<System.Runtime.InteropServices.ComVisible(true)>]
type DebuggableAttribute.DebuggingModes = 
Public Enum DebuggableAttribute.DebuggingModes
繼承
DebuggableAttribute.DebuggingModes
屬性

欄位

Default 1

指示 Just-In-Time (JIT) 編譯器使用其預設行為,這些行為包括啟用最佳化設定、停用編輯後繼續支援,以及使用符號存放區的序列點 (如果有的話)。 從 .NET Framework 2.0 版開始,永遠會產生 JIT 追蹤資訊 (方法中 Microsoft 中間語言 (MSIL) 位移至機器碼位移)。

DisableOptimizations 256

停用編譯器執行的最佳化,可讓您的輸出檔案變得更小、更快、更有效率。 最佳化是在輸出檔案中程式碼重新排列所產生的結果,它可能會造成偵錯困難。 一般來說,偵錯時應該停用最佳化。 在 2.0 (含) 以後版本中,這個值與 Default (Default | DisableOptimizations) 結合以啟用 JIT 追蹤並停用最佳化。

EnableEditAndContinue 4

啟用 [編輯後繼續]。 [編輯後繼續] 可以讓您在程式處於中斷模式時,變更您的原始程式碼。 編輯後繼續的功能與編譯器有相依性。

IgnoreSymbolStoreSequencePoints 2

使用隱含式 MSIL 序列點,不是程式資料庫 (PDB) 序列點。 符號資訊通常會為每個來源行包括至少一個 Microsoft Intermediate Language (MSIL) 位移。 Just-In-Time (JIT) 編譯器要編譯方法時,會為應該保留的 MSIL 位移清單要求逐步分析服務。 這些 MSIL 位移稱為「序列點」。

None 0

從 .NET Framework 2.0 版開始,永遠會產生 JIT 追蹤資訊,而且這個旗標與 Default 的作用相同,除了它會設定 IsJITTrackingEnabled 屬性為 false 以外。 不過,因為永遠啟用 JIT 追蹤,在 2.0 版本或更新版本中會忽略這個屬性值。

請注意,不同於 DisableOptimizations 旗標,None 旗標不能用來停用 JIT 最佳化。

備註

列舉 DebuggableAttribute.DebuggingModes 會指定執行時間如何在程式碼產生期間追蹤偵錯工具重要資訊。 這項資訊可協助偵錯工具提供豐富的偵錯體驗。 不同于 .NET Framework 1.1 版,2.0 版或更新版本不允許您關閉 Just-In-Time (JIT) 編譯器的追蹤。 JIT 追蹤一律會針對可偵錯的檔案啟用。 在 2.0 版和更新版本中,列舉值具有下列效果。

偵錯模式 結果
None 啟用 JIT 優化後追蹤
預設 啟用 JIT 優化後追蹤
DisableOptimizations 啟用 JIT 優化後追蹤
預設|DisableOptimizations 追蹤,已停用 JIT 優化

序列點可用來指出偵錯工具使用者預期能夠唯一參考 Microsoft的 MSIL (中繼語言) 程式碼中的位置,例如設定中斷點。 JIT 編譯程式可確保它不會在兩個不同的序列點將 MSIL 編譯成單一原生指令。 根據預設,JIT 編譯程式會檢查程式資料庫中的符號存放區, (PDB) 檔案中是否有其他序列點的清單。 不過,載入 PDB 檔案需要檔案可供使用,並對效能造成負面影響。 從 2.0 版開始,編譯器可以透過使用 MSIL 「 指令,在 MSIL 程式碼資料流程中發出「隱含序列點」 nop" 。 這類編譯器應該設定 IgnoreSymbolStoreSequencePoints 旗標,以通知 Common Language Runtime 不要載入 PDB 檔案。

注意

此列舉主要是由語言開發人員使用。 它通常不會用於應用程式開發。 開發環境會根據編譯器參數使用 DebuggableAttribute.DebuggingModes,例如 /debug/optimize

適用於