The Copilot Chat extension (preview) for Visual Studio is available for download today, but I feel the need to emphasize something. While the main interaction layer is chat based, we know that the various diagnostics interruptions and pauses are filled with information that are not easily articulated with text. For example, how would you communicate the state of your apps threads? Or the value of all the locals? Or the call stack state? There is a host of data we might want to share with Copilot that should be conveniently packaged and shared for you while debugging issues.
Let me show you an example.
Helping Exception Helper
If you have spent much time in Visual Studio you would have invariably and inadvertently created an exception, and depending on how you handle the exception it might lead to a crash. There are many, many types of exceptions, so much so that no one can possibly be expected to know or even understand them all. The Exception Helper dialogue box (below) is a really convenient place for you to decide how to handle these situations, the debugger is providing a really convenient pause point before letting your app fail.
You can at this point decide to ignore the Exception Thrown (or indeed all exceptions) completely, but with the Copilot extension installed you get a new Ask Copilot button which conveniently gathers data from the debugger to help you understand this exception in context. So when you ask the question you send a set of references to help Copilot provide a better answer. Why? because you are grounding the question with a more complete context. This currently include Exception information (Title, message), Call stack, and Locals as shown here.
I am having a blast exploring the ways AI tools and platforms can be used to improve the experiences of developer workflows, we are actively listening and learning. My main focus is on debugging and diagnostics. So whether you are at a carefully placed breakpoint, or running the profiler looking for performance clues, I think each of these diagnostics interruptions provide a moment to gain clarity on the health and logic of your application.
Please check out my talk with Scott Hanselman at Ignite where we discuss GitHub Copilot and AI for Developers: Potential and Pitfalls.