🎀🎀🎀【AI輔助編程系列】🎀🎀🎀
- Visual Studio 使用 GitHub Copilot 與 IntelliCode 輔助編碼
- Visual Studio 安裝和管理 GitHub Copilot
- Visual Studio 使用 GitHub Copilot 擴展
- Visual Studio 使用 GitHub Copilot 聊天
- Visual Studio 使用 GitHub Copilot 協助調試
- Visual Studio 使用 IntelliCode AI 輔助代碼開發
- Visual Studio 玩轉 IntelliCode AI輔助開發
文章目錄
- 一、前言
- 二、獲取 AI 幫助以調試應用
- 2.1 啟動調試會話
- 三、獲取有關異常的 AI 幫助
- 3.1 啟動調試會話
- 3.2 請求 AI 幫助
- 四、獲取條件斷點和跟蹤點的 AI 幫助
- 五、在 IEnumerable 表格可視化工具中獲取 AI 幫助
- 5.1 獲取自動見解的 AI 幫助
- 六、總結
一、前言
本文介紹如何使用 GitHub Copilot 更有效地進行 調試
。 Copilot 可提供 代碼修復
,以及有關代碼工作原理的 深入分析
和 解釋
。 它有助于提供針對 bug
的建議修復,并解釋異常等事項。 Copilot 能夠理解調用 堆棧
、幀
、變量名稱
和 值
。 因此,你可與調試器感知的 AI 進行交互,從而詢問與代碼相關的 詳細問題
以及 一般的 調試問題
。
此外,Copilot
為某些目標方案提供了更精確的幫助,例如:
- 異常
- 變量
- 死鎖
- 快速操作(燈泡)
若要在這些場景中進行調試時獲取 AI 幫助,請查找 “詢問 Copilot”
。按鈕。 在這些場景中,Copilot 已知問題的上下文。 例如,它知道當前的調用堆棧、要詢問的代碼行以及異常的名稱(如果發生了一個異常),因此 無需
在聊天中自行提供 上下文
。 Copilot 還提供了使用 條件斷點
和 跟蹤點
的建議。
二、獲取 AI 幫助以調試應用
以下簡易示例演示如何使用內聯聊天視圖獲取 AI 幫助。
此外,還可通過選擇 視圖
> GitHub Copilot 聊天
以通過單獨的聊天窗口來獲取幫助。
2.1 啟動調試會話
1.在 Visual Studio 中,創建新的 C# 控制臺應用。
在 “開始”
窗口上,選擇 創建新項目
。 在搜索框中鍵入“控制臺”
,選擇 “C#”
作為語言,然后對 .NET 選擇 “控制臺應用”
。 選擇下一步。 鍵入項目名稱(如 ConsoleApp_Copilot),然后選擇 “下一步”
。
選擇建議的目標框架或 .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 以打開內聯聊天視圖。
或者,可以在“自動”或“局部變量”窗口中或數據提示中右鍵單擊變量,然后選擇詢問 Copilot。 這為 Copilot 提供了 變量名稱
和 上下文
,因此你不需要在聊天中自己提供上下文。
6. 在內聯聊天視圖中鍵入以下問題:
Why does the args variable have a value of string[0]?
按 Enter 時,Copilot 會根據對代碼的理解來提供答案。 (你可能會看到不同于此處所示的響應。
如果 Copilot 為代碼提供了 建議
的 修復方法
,則會為你顯示。 如果沒有,則可要求 Copilot 提供代碼建議。
在內聯聊天中,使用“#”符號并從下拉列表中進行選擇,將特定信息移交給 Copilot,同時在問題中引用該信息。 例如,如果選擇部分代碼,然后鍵入 #,則可以從 # 下拉列表中選擇該所選內容。 還可以使用“#”符號來引用下拉列表中顯示的 IDE 功能,例如“局部變量”窗口。
7. 在此示例中,滾動到 Copilot 答案的末尾,然后在內聯聊天窗口的末尾選擇后續問題:“未向程序傳遞任何參數時,如何處理此情況?”
Copilot 會顯示針對代碼的建議修復方法。
如果要應用此代碼修復方法,則請選擇接受。
8. 選擇取消,以便在下一節中繼續學習 Copilot 的其他功能。
三、獲取有關異常的 AI 幫助
以下簡單示例演示如何在遇到異常時獲取 AI 幫助,以及如何根據 AI 建議的解決方法快速更新代碼。
3.1 啟動調試會話
在使用同一示例應用的調試器中暫停時,按 F11 或調試>單步執行可執行當前的語句。
發生 IndexOutOfRangeException
并且應用暫停,顯示異常。
若要獲取異常的 AI 幫助,請繼續下一部分。
3.2 請求 AI 幫助
- 當應用程序因
異常
而暫停
時,選擇“詢問 Copilot”
按鈕。
如果尚未打開,則將出現 Copilot 聊天窗口,并提供錯誤及其發生原因的評估。 在此示例中,Copilot 標識了建議的代碼修補程序、復制代碼的按鈕以及代碼修補程序的 “預覽”
按鈕。
如果對異常有疑問,請在 “詢問 Copilot”
文本框中進行詢問。
- 選擇預覽按鈕。
Visual Studio 顯示代碼預覽,其中包含建議的解決方法。
- 查看建議的解決方法,然后選擇
“接受”
以應用代碼建議。
- 重啟調試程序。
這一次未發生異常。 已解決此問題!
四、獲取條件斷點和跟蹤點的 AI 幫助
Copilot 提供有關特定于代碼的條件斷點和跟蹤點的建議。
在此示例中,我們展示了 AI 對條件斷點的建議。 對于跟蹤點,AI 幫助以同樣的方式工作。
- 單擊當前斷點或右鍵單擊并選擇
“刪除斷點”
,以刪除當前斷點。 - 替換以下代碼行:
names.Add("Major Major Major");
替換為以下內容:
// names.Add("Major Major Major");
foreach (var item in args)
{names.Add("Name: " + item);
}
-
在
names.Add("Name: " + item)
語句左側,右鍵單擊裝訂線,然后選擇插入條件斷點。 -
選擇表達式字段,Copilot 會開始處理建議。
- 出現建議時,請選擇一個(例如 item == “John”)。 編輯建議,使名稱為 Fred。
- 若要測試條件表達式,請執行以下操作:
- 在解決方案資源管理器中右鍵單擊
“ConsoleApp_Copilot”
項目,然后選擇“屬性”
。 - 選擇
“調試”
>“常規”
>“打開調試啟動配置文件 UI”
。 - 在
“命令行參數”
字段中,在三個單獨的行上輸入 5 Fred Joe。 - 重啟調試程序。
當調試程序在斷點處暫停時,請檢查 item
的值,并驗證當前值是否為 Fred
。
五、在 IEnumerable 表格可視化工具中獲取 AI 幫助
有關 IEnumerable
表格可視化工具的 AI 幫助,請參閱 修改可視化工具表達式。
5.1 獲取自動見解的 AI 幫助
除了 交互式調試
幫助之外,Copilot 還會在 CPU 使用情況自動見解中提供詳細信息。 它可提供與一組特定性能見解相關的信息和見解。 使用 Copilot,可詢問有關代碼中已識別的熱路徑上的函數的問題,以幫助你生成更高效或更具成本效益的代碼。
即使沒有確定具體的性能見解,也會出現詢問 Copilot 按鈕。 選擇詢問 Copilot,以向 Copilot 學習并開始提問。
六、總結
總之,Copilot 可以協助我們調試進行更好的調試,它有助于提供針對 bug 的建議修復。 因此,你可與調試器感知的 AI 進行交互,從而詢問與代碼相關的詳細問題以及一般的調試問題。
🎀🎀🎀【AI輔助編程系列】🎀🎀🎀
- Visual Studio 使用 GitHub Copilot 與 IntelliCode 輔助編碼
- Visual Studio 安裝和管理 GitHub Copilot
- Visual Studio 使用 GitHub Copilot 擴展
- Visual Studio 使用 GitHub Copilot 聊天
- Visual Studio 使用 GitHub Copilot 協助調試
- Visual Studio 使用 IntelliCode AI 輔助代碼開發
- Visual Studio 玩轉 IntelliCode AI輔助開發