You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: docs/debugger/autos-and-locals-windows.md
+95-24Lines changed: 95 additions & 24 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,7 +1,7 @@
1
1
---
2
-
title: Inspect variables - Autos and Locals windows
2
+
title: Inspect variables - Visual Studio debugger
3
3
description: Inspect variables in the Autos and Locals windows while debugging in Visual Studio. The Autos and Locals windows show variable values while you are debugging.
# Inspect variables in the Autos and Locals windows
19
+
# Inspect variables in the Visual Studio debugger
20
20
21
-
The **Autos** and **Locals** windows show variable values while you are debugging. The windows are only available during a debugging session. The **Autos** window shows variables used around the current statement where the debugger is paused. The **Locals** window shows variables defined in the local scope, which is usually the current function or method.
21
+
Features that allow you to inspect variables are some of the most useful features of the debugger, and there are different ways to do it. Often, when you try to debug an issue, you are attempting to find out whether variables are storing the values that you expect them to have in a particular app state.
22
+
23
+
In this article, you'll learn how to inspect variables using the debugger in Visual Studio. The Visual Studio debugger provides several convenient ways to view variable values while debugging, including the following:
24
+
25
+
- Variable inspection windows (Autos, Locals, and Watch windows)
26
+
- Data tips in the code editor
27
+
- Inline return values
28
+
- Visualizers for large strings or complex .NET objects
29
+
30
+
These features are only available while debugging. To learn how to start a debugging session, see [Start debugging and enter break mode](../debugger/navigating-through-code-with-the-debugger.md#start-debugging-and-enter-break-mode).
22
31
23
32
> [!NOTE]
24
33
> If this is the first time that you've tried to debug code, you might want to read [Debugging for absolute beginners](../debugger/debugging-absolute-beginners.md) and [Debugging techniques and tools](../debugger/write-better-code-with-visual-studio.md) before going through this article.
25
34
26
-
The **Autos** window is available for C#, Visual Basic, C++, and Python code, but not for JavaScript or F#.
35
+
## Inspect variables in the Autos and Locals windows
27
36
28
-
To open the **Autos** window, while debugging, select **Debug** > **Windows** > **Autos**, or press **Ctrl**+**Alt**+**V** > **A**.
37
+
The **Autos** and **Locals** windows show variable values while you are debugging. The windows are only available during a debugging session. The **Autos** window shows variables used around the current statement where the debugger is paused. The **Locals** window shows variables defined in the local scope, which is usually the current function or method.
38
+
39
+
- To open the **Autos** window, while debugging, select **Debug** > **Windows** > **Autos**, or press **Ctrl**+**Alt**+**V** > **A**.
29
40
30
-
To open the**Locals** window, while debugging, select **Debug** > **Windows** > **Locals**, or press **Alt**+**4**.
41
+
The**Autos** window is available for C#, Visual Basic, C++, and Python code, but not for JavaScript or F#.
31
42
32
-
## Use the Autos and Locals windows
43
+
- To open the **Locals** window, while debugging, select **Debug** > **Windows** > **Locals**, or press **Alt**+**4**.
33
44
34
45
Arrays and objects show in the **Autos** and **Locals** windows as tree controls. Select the arrow to the left of a variable name to expand the view to show fields and properties. Here is an example of a <xref:System.IO.FileStream?displayProperty=fullName> object in the **Locals** window:
35
46
@@ -44,7 +55,7 @@ A red value in the **Locals** or **Autos** window means the value has changed si
44
55
45
56
The default numeric format in debugger windows is decimal. To change it to hexadecimal, right-click in the **Locals** or **Autos** window and select **Hexadecimal Display**. This change affects all debugger windows.
46
57
47
-
## Edit variable values in the Autos or Locals window
58
+
###Edit variable values in the Autos or Locals window
48
59
49
60
To edit the values of most variables in the **Autos** or **Locals** windows, double-click the value and enter the new value.
50
61
@@ -59,7 +70,7 @@ In native C++ code, you might have to qualify the context of a variable name. Fo
59
70
>
60
71
>- Editing floating-point values can result in minor inaccuracies because of decimal-to-binary conversion of fractional components. Even a seemingly harmless edit can result in changes to some of the bits in the floating-point variable.
61
72
62
-
## Search in the Autos or Locals window
73
+
###Search in the Autos or Locals window
63
74
64
75
You can search for keywords in the Name, Value, and Type columns of the **Autos** or **Locals** window using the search bar above each window. Hit ENTER or select one of the arrows to execute a search. To cancel an ongoing search, select the "x" icon in the search bar.
65
76
@@ -74,7 +85,7 @@ Use the left and right arrows (Shift+F3 and F3, respectively) to navigate betwee
74
85
75
86
To make your search more or less thorough, use the **Search Deeper** dropdown list at the top of the **Autos** or **Locals** window to select how many levels deep you want to search into nested objects.
76
87
77
-
## Pin properties in the Autos or Locals window
88
+
###Pin properties in the Autos or Locals window
78
89
79
90
> [!NOTE]
80
91
> This feature is supported for .NET Core 3.0 or higher.
@@ -89,7 +100,7 @@ You can also toggle property names and filter out non-pinned properties when vie
89
100
90
101

91
102
92
-
## Change the context for the Autos or Locals window
103
+
###Change the context for the Autos or Locals window
93
104
94
105
You can use the **Debug Location** toolbar to select a desired function, thread, or process, which changes the context for the **Autos** and **Locals** windows.
95
106
@@ -104,13 +115,7 @@ Set a breakpoint and start debugging. When the breakpoint is hit, execution paus
104
115

105
116
::: moniker-end
106
117
107
-
::: moniker range=">= vs-2022"
108
-
## Get AI assistance
109
-
110
-
If you have [Copilot](../ide/visual-studio-github-copilot-extension.md), you can get AI assistance while you're looking at variables in the Autos or Locals windows, or in data tips. Right-click on a variable and use the **Ask Copilot** button. In this scenario, Copilot already knows the context for your question, so you don't need to provide context yourself in chat. For more information, see [Debug with Copilot](../debugger/debug-with-copilot.md).
111
-
::: moniker-end
112
-
113
-
## <aname="bkmk_whatvariables"></a> Variables in the Autos window (C#, C++, Visual Basic, Python)
118
+
### <aname="bkmk_whatvariables"></a> Language differences in the Autos window (C#, C++, Visual Basic, Python)
114
119
115
120
Different code languages display different variables in the **Autos** window.
116
121
@@ -163,14 +168,53 @@ Different code languages display different variables in the **Autos** window.
163
168
164
169
The variable `e` is uninitialized, because the line `e = 5` has not yet been executed.
165
170
166
-
## <a name="bkmk_returnValue"></a> View return values of method calls
171
+
## View data tips
167
172
168
-
In .NET and C++ code, you can examine return values in the **Autos** window when you step over or out of a method call. Viewing method call return values can be useful when they are not stored in local variables. A method could be used as a parameter, or as the return value of another method.
173
+
Often, when debugging, you want a quick way to check property values on objects in the code editor, and the data tips are a good way to do it. For detailed information on using data tips, see [View data values in data tips](../debugger/view-data-values-in-data-tips-in-the-code-editor.md).
169
174
170
-
> [!NOTE]
171
-
> Starting in Visual Studio 2022 version 17.12 Preview 3, you can also view [return values inline](../debugger/debugger-feature-tour.md#view-return-values-of-method-calls) and not just in the Autos window.
175
+
While paused in the debugger, hover over an object with the mouse and you see its value, or its default property value.
176
+
177
+
::: moniker range=">= vs-2022"
178
+

179
+
::: moniker-end
180
+
::: moniker range="<= vs-2019"
181
+

182
+
::: moniker-end
183
+
184
+
If the variable has properties, you can expand the object to see all its properties.
185
+
186
+
## Set a watch on variables
187
+
188
+
You can use a **Watch** window to specify a variable (or an expression) that you want to keep an eye on. For detailed information, see [Set a Watch using the Watch and QuickWatch Windows](../debugger/watch-and-quickwatch-windows.md).
189
+
190
+
While debugging, right-click an object and choose **Add Watch**.
In this example, you have a watch set on the object, and you can see its value change as you move through the debugger. Unlike the other variable windows, the **Watch** windows always show the variables that you are watching (they're grayed out when out of scope).
200
+
201
+
## View return values of method calls
172
202
173
-
For example, the following C# code adds the return values of two functions:
203
+
In .NET and C++ code, you can examine return values in the **Autos** window when you step over or out of a method call, which can be useful when the return value is not stored in a local variable. A method could be used as a parameter, or as the return value of another method.
204
+
205
+
::: moniker range=">= vs-2022"
206
+
Starting in Visual Studio 2022 version 17.12 Preview 3, you can also view return values of method calls inline and not just in the Autos window.
207
+
208
+
[  ](../debugger/media/vs-2022/view-return-values.png#lightbox)
209
+
210
+
With Copilot enabled, you can also get targeted assistance related to the inline return value by using the Ask Copilot button that appears in the data tip for the return value.
211
+
212
+
[  ](../debugger/media/vs-2022/view-return-values-copilot.png#lightbox)
213
+
::: moniker-end
214
+
215
+
### View return values in the Autos windows
216
+
217
+
In the following example, this C# code adds the return values of two functions:
174
218
175
219
```csharp
176
220
static void Main(string[] args)
@@ -207,6 +251,33 @@ To see the return values of the `sumVars()` and `subtractVars()` method calls in
207
251

208
252
::: moniker-end
209
253
254
+
## Inspect variables in a visualizer
255
+
256
+
While you are debugging in Visual Studio, you can view large strings or complex objects with built-in visualizers that make the data easier to inspect. For example:
257
+
258
+
- The string visualizer shows text, XML, HTML, and JSON strings that are too long for a data tip or debugger window. It can also help you identify malformed strings. For more information, see [View strings in a string visualizer](../debugger/view-strings-visualizer.md).
259
+
- The DataSet and IEnumerable visualizers show .NET collection objects in a tabular visualizer. For more information, see [Tabular visualizers in Visual Studio](../debugger/view-data-in-tabular-visualizer.md)) objects.
260
+
261
+
The visualizers appear in the **Autos** windows and other debugger windows.
262
+
263
+
> [!NOTE]
264
+
> If you need to inspect XAML or WPF UI elements in a visualizer, see or [Inspect XAML properties while debugging](../xaml-tools/inspect-xaml-properties-while-debugging.md) or [How to use the WPF tree visualizer](../debugger/how-to-use-the-wpf-tree-visualizer.md).
265
+
266
+
To open a visualizer, you must be paused during debugging. Hover over a variable that has a supported visualizer value, and select the magnifying glass icon .
267
+
268
+
::: moniker range=">= vs-2022"
269
+

270
+
::: moniker-end
271
+
::: moniker range="vs-2019"
272
+

273
+
::: moniker-end
274
+
275
+
::: moniker range=">= vs-2022"
276
+
## Get AI assistance
277
+
278
+
If you have [Copilot](../ide/visual-studio-github-copilot-extension.md), you can get AI assistance while you're looking at variables in the Autos or Locals windows, or in data tips. Right-click on a variable and use the **Ask Copilot** button. In this scenario, Copilot already knows the context for your question, so you don't need to provide context yourself in chat. For more information, see [Debug with Copilot](../debugger/debug-with-copilot.md).
279
+
::: moniker-end
280
+
210
281
## Related content
211
282
212
283
-[What is debugging?](../debugger/what-is-debugging.md)
Copy file name to clipboardExpand all lines: docs/debugger/debug-with-copilot.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -221,7 +221,7 @@ In addition, Copilot provides more precise help for some targeted scenarios, suc
221
221
|Conditional breakpoints and tracepoints|See [Get suggestions with conditional breakpoints and tracepoints](#get-suggestions-with-conditional-breakpoints-and-tracepoints) in this article.|
222
222
|Quick Actions (light bulb)|See [Get AI assistance with Quick Actions](../ide/quick-actions.md#get-ai-assistance).|
223
223
|IEnumerable tabular visualizer|See [Modify the visualizer expression](../debugger/view-data-in-tabular-visualizer.md#modify-the-expression-in-the-ienumerable-visualizer).|
224
-
|Inline return values|See [View return values of method calls](../debugger/debugger-feature-tour.md#view-return-values-of-method-calls).|
224
+
|Inline return values|See [View return values of method calls](../debugger/autos-and-locals-windows.md#view-return-values-of-method-calls).|
0 commit comments