在 Visual Studio 中使用 GitHub Copilot 對您的應用程式進行偵錯

在本文中,您將了解如何使用 GitHub Copilot 更有效率地偵錯。 Copilot 可以提供程式碼修正,以及程式碼運作方式的深入分析和說明。 它有助於提出錯誤修正建議,並說明例外狀況等事項。 Copilot 瞭解呼叫堆疊、框架、變數名稱和值。 因此,您可以與可感知偵錯工具的 AI 互動,以詢問與程式碼相關的詳細問題,以及一般偵錯問題。

此外,Copilot 為一些目標案例提供更精確的協助,包括:

  • 例外狀況
  • 自動深入解析 CPU 使用量

若要在這些案例偵錯時取得 AI 協助,請尋找詢問副手[詢問副手] 按鈕的螢幕擷取畫面。按鈕。 在這些情況下,副手已經知道問題的內容。 例如,它知道目前的呼叫堆疊、您詢問的程式碼行,以及例外的名稱 (如果有發生),因此您不需要在聊天中自行提供內容。

如需 Visual Studio 中 GitHub Copilot 完成的詳細資訊,請參閱關於 Visual Studio 的 GitHub Copilot 完成

必要條件

若要開始,您需要:

取得 AI 協助以偵錯應用程式

下列簡單範例示範如何使用內嵌聊天檢視取得 AI 協助。

注意

您也可以透過選擇檢視> GitHub Copilot 聊天,使用單獨的 [聊天] 視窗來取得協助。 有關詳細資訊,請參閱什麼是適用於 Visual Studio 的 GitHub Copilot Chat 延伸模組?

啟動偵錯工作階段

  1. 在 Visual Studio 中,建立新的 C# 主控台應用程式。

    在開始視窗中,選擇 [建立新專案]。 在搜尋方塊中輸入主控台,選擇 C# 作為語言,然後選擇 NET 的主控台應用程式。 選擇下一步。 輸入專案名稱,例如 ConsoleApp_Copilot,然後選擇下一步

    選擇建議的目標 Framework 或 .NET 8,然後選擇 [建立]

    如果您未看到適用於 .NET 的 [主控台應用程式] 專案範本,請前往 [工具]>[取得工具與功能...],以開啟 Visual Studio 安裝程式。 選擇 [.NET 桌面開發] 工作負載,然後選擇 [修改]

    Visual Studio 隨即建立主控台專案,並出現在右窗格的 [方案總管] 中。

  2. Program.cs 中的程式碼取代為下列程式碼:

    using System;
    using System.Collections.Generic;
    
    public class Example
    {
        public static void Main(string[] args)
        {
            int value = Int32.Parse(args[0]);
            List<String> names = null;
            if (value > 0)
                names = new List<String>();
    
            names.Add("Major Major Major");
        }
    }
    
  3. 以滑鼠右鍵按一下以下陳述式,並選擇中斷點>插入中斷點

    int value = Int32.Parse(args[0]);
    
  4. F5,或從偵錯選單中選擇開始偵錯

    應用程式會在中斷點暫停。 自動變數視窗顯示 args 變數的值為 string[0]

    [自動變數] 視窗的螢幕擷取畫面。

  5. 以滑鼠右鍵按一下程式碼,然後選擇詢問 Copilot 以開啟內嵌聊天檢視。

  6. 在內嵌聊天檢視中輸入下列問題:

    Why does the args variable have a value of string[0]?
    

    內嵌副手聊天的螢幕擷取畫面。

    當您按下 Enter 鍵時,Copilot 會根據其對程式碼的理解來提供答案。 (您得到的回應可能與此處顯示的不同。)

    副手已回答問題的螢幕擷取畫面。

    如果 Copilot 有建議的程式碼修正,它會向您顯示。 如果沒有,您可以向 Copilot 詢問建議的程式碼。

  7. 在此範例中,捲動到 Copilot 答案的結尾,然後選擇內嵌聊天視窗結尾的後續問題:「當沒有引數傳遞給程式時,我該如何處理?」

    副手後續追蹤問題的螢幕擷取畫面。

    Copilot 會顯示程式碼修正建議。

    副手建議的修正方案的螢幕擷取畫面。

    如果您想要套用程式碼修正,請選擇接受

  8. 選擇取消,以便在下一節中繼續學習 Copilot 的其他功能。

取得例外狀況的 AI 協助

下列簡單範例示範如何在遇到例外狀況時取得 AI 協助,以及如何根據 AI 建議的修正快速更新程式碼。

啟動偵錯工作階段

  • 使用相同範例應用程式在偵錯工具中暫停時,按 F11偵錯>逐步執行以執行目前陳述式。

    發生 IndexOutOfRangeException 且應用程式暫停,顯示例外狀況。

    若要取得 AI 協助來處理例外狀況,請繼續進行下一節。

要求 AI 協助

  1. 當應用程式因例外狀況而暫停時,選取詢問 Copilot 按鈕。

    例外狀況下 [詢問副手] 按鈕的螢幕擷取畫面。

    如果尚未開啟,[Copilot 聊天] 視窗隨即出現,其中提供對錯誤的評估,以及發生原因。 在此範例中,Copilot 會識別建議的程式碼修正、用於複製程式碼的按鈕,以及用於程式碼修正的預覽按鈕。

    如果您對例外狀況有疑問,請在 [詢問 Copilot] 文字方塊中詢問。

  2. 選取預覽按鈕。

    [副手聊天] 視窗中 [預覽] 按鈕的螢幕擷取畫面。

    Visual Studio 會顯示程式碼預覽,其中包含建議的修正。

  3. 查看建議的修正,並選擇接受以套用程式碼建議。

    Visual Studio 中程式碼預覽的螢幕擷取畫面。

  4. 重新啟動偵錯工具。

    這一次,沒有出現任何例外狀況。 此問題已修正!

取得 AI 協助以進行自動深入解析

除了互動式偵錯協助之外,Copilot 還提供 CPU 使用量自動深入解析中的詳細資訊。 它提供與一組特定效能深入解析相關的資訊和深入解析。 使用 Copilot,詢問您程式碼中已識別最忙碌路徑上的函式相關問題,這可協助您產生更有效率或符合成本效益的程式碼。

當 CPU 使用量工具在 Top Insights 區段中提供自動深入解析時,請選取 [詢問 Copilot] 以向 Copilot 學習並開始詢問問題。

含 CPU 使用量的使用副手的動畫。