共用方式為


在 Visual Studio 的設計階段進行偵錯(C#、C++/CLI、Visual Basic、F#)

若要在設計時間偵錯程式碼,而不是在應用程式執行時,您可以使用 立即視窗

若要從 XAML 設計工具對應用程式背後的 XAML 程式代碼進行偵錯,例如宣告式數據系結案例,您可以使用偵>錯附加至進程

使用 [立即] 視窗

您可以使用 Visual Studio 即時 運算視窗來執行函式或子程式,而不需要執行您的應用程式。 如果函式或子程式包含斷點,Visual Studio 會在斷點中斷。 然後,您可以使用除錯程式視窗來檢查您的程式狀態。 這項功能稱為在設計階段進行偵錯。 如需詳細資訊,請參閱 立即視窗

下列範例位於 Visual Basic 中。 您也可以在 C#、F# 和 C++/CLI 應用程式的設計階段使用 即時 視窗。 針對 C++/CLI,請在編譯時不使用 /clr 選項以便使用即時視窗。

  1. 將下列程式代碼貼到空白的 Visual Basic 控制台應用程式中:

    Module Module1
    
        Sub Main()
            MySub()
        End Sub
    
        Function MyFunction() As Decimal
            Static i As Integer
            i = i + 1
            Return i
        End Function
    
        Sub MySub()
            MyFunction()
    
        End Sub
    End Module
    
  2. 在行 End 函式上設定斷點。

  3. 選擇偵錯>>,以開啟立即視窗。 在視窗中輸入 ?MyFunction ,然後按 Enter

    已達到斷點,在 [Locals] 視窗中的 MyFunction 值為 1。 您可以在應用程式處於中斷模式時檢查呼叫堆疊和其他偵錯視窗。

  4. 選取 Visual Studio 工具列上的 [繼續 ]。 應用程式結束後,會在 [即時] 視窗中傳回 1。 請確定您仍處於設計模式。

  5. 再次在 [?MyFunction 視窗] 中輸入 ,然後按 Enter。 觸發斷點,且 Locals 視窗中的 MyFunction 值為 2。

  6. 若未選取 [繼續],在 [?MySub()] 視窗中輸入 ,然後按 Enter。 斷點已命中,局部視窗中的 MyFunction 值為 3。 您可以在應用程式處於中斷模式時檢查應用程式狀態。

  7. 選取繼續。 斷點再次被觸發,局部變數視窗中MyFunction的值現在是2。 [ 即時 運算] 視窗會 傳回表達式已評估且沒有值

  8. 再次選取 [ 繼續 ]。 應用程式結束時,將在 [即時視窗] 傳回 2。 請確定您仍處於設計模式。

  9. 若要清除 即時 視窗的內容,請在視窗中按下滑鼠右鍵,然後選取 全部清除

在設計時附加至 XAML 設計器,對自訂 XAML 控制項進行偵錯

  1. 在 Visual Studio 中開啟您的方案或專案。

  2. 建置方案/專案。

  3. 開啟包含您要偵錯之自定義控件的 XAML 頁面。

    針對以 Windows 組建 16299 或更新版本為目標的 UWP 專案,此步驟將會開始 UwpSurface.exe 程序。 針對以 Windows 版本 16299 或更新版本為目標的 WPF 專案,此步驟將會開始 WpfSurface.exe 過程。 針對 Windows 組建 16299 之前的 WPF 或 UWP 版本,此步驟將會啟動 XDesProc.exe 程式。

  4. 開啟 Visual Studio 的第二個實例。 請勿在第二個實例中開啟方案或專案。

  5. 在第二個 Visual Studio 實例中,開啟 [ 偵錯] 功能表,然後選擇 [ 附加至進程...]。

  6. 根據您的項目類型(請參閱上述步驟),從可用進程清單中選取 UwpSurface.exeWpfSurface.exeXDesProc.exe 程式。

  7. 在 [附加至進程] 對話方塊的 [附加至] 欄位中,針對您要偵錯的自定義控件選擇正確的程式碼類型。

    如果您的自訂控制項是以 .NET 語言撰寫,請選擇適當的 .NET 程式代碼類型,例如 Managed (CoreCLR) 。 如果您的自定義控件已以C++撰寫,請選擇 [原生]。

  8. 按兩下 [ 附加 ] 按鈕以附加Visual Studio的第二個實例。

  9. 在第二個 Visual Studio 實例中,開啟與您要偵錯之自定義控件相關聯的程式碼檔案。 請務必只開啟檔案,而不是整個方案或專案。

  10. 將必要的中斷點設定在先前開啟的檔案中。

  11. 在第一個 Visual Studio 實例中,關閉包含您要偵錯之自定義控件的 XAML 頁面(您在先前步驟中開啟的相同頁面)。

  12. 在第一個 Visual Studio 實例中,開啟您在上一個步驟中關閉的 XAML 頁面。 這會讓偵錯工具在您於 Visual Studio 第二個執行個體所設的第一個斷點處停止。

  13. 偵錯 Visual Studio 第二個實例中的程序代碼。