I'm using Visual Studio 2008 and I have just noticed that the debugger is displaying integer values as Hex when I hover over variables and also in the immediate window. I guess I must have hit a shortcut key accidently or something.
Anyone had this before? How do I set it back to display in decimal?
Right-click your Watch Window or Immediate Window and uncheck Hexadecimal Display option.
You can also choose hexadecimal or decimal display on a per-variable basis in the Visual Studio watch window by appending a debugger format specifier to the variable name. In the watch window, enter:
myInt,h
myInt,d
The other very useful format specifiers are ac (see footnote) for 'always calculate', and nq for displaying with 'no quotes.' They can be used together:
my_string_func(),ac,nq
nq is useful inside DebuggerDisplay attributes, which can appear on a class:
[DebuggerDisplay("{my_string_func(),nq}")]
class MyClass
{
/* ...example continues below... */
...or on one or more field(s) inside a class:
[DebuggerDisplay("{some_field,nq}", Name="substitute name here")]
int an_integer;
[DebuggerBrowsable(DebuggerBrowsableState.Never)]
String some_field;
}
http://msdn.microsoft.com/en-us/library/e514eeby(v=VS.100).aspx
note that earlier versions of the MSDN doc page incorrectly said 'Ac' (with a capital 'A')--which doesn't work
There is a Hex button shown when Visual Studio is run in Debug mode to enable/disable the Hex display
Right-click on client space of almost every debug window (except Immediate Window) - watch/locals/autos/threads/call stack - and uncheck "Hexadecimal Display" option.
There's also a "Hex" button in debug toolbar (right to "Step Over" by default) when debugging.
In Visual Studio 2010 I also saw it in the Debug toolbar, it was highlighted in yellow 'Hex', I just clicked it and it returned to (normal) decimal values
Visual Studio 2017
Decimal vs. hexadecimal display is controlled only from the Watch dialog.
Break after setting the variable.
Right mouse click the variable and select "Add Watch" or "QuickWatch"
Right mouse click the line in the Watch dialogue.
Uncheck "Hexadecimal Display"
The display will now be in decimal.
In the immediate window you can uncheck the Hexadecimal Display option.
Related
In Visual Studio 2019 debug mode it's possible to hover over variables to show their value and then right-click to "Copy", "Copy Expression" or "Copy Value". When I'm doing a "Copy Value" of a string I want it to copy the strings's value not it's escaped value. Is there any way to change this behavior or is there a different way to do this, maybe an extension or something I can add that will give me another choice to get the non-escaped value?
The way I currently workaround this is I have to move my curser to the left and click on the magnifying glass icon to open the preview dialog then do a Ctrl+A, Ctrl+C from there and although this works it's really annoying. I'm hoping there's a better way!
I have a question regarding debugging using Visual Studio.
We all know that when debugging you can set breakpoints and have some variables watched. These variables can be editted too. (So you can change their values)
In the case you have a collection (that has for example two elements, you can see the elements and change their values)
But can you add or delete elements of that collection? Is there a way to do this from your watch window?
You can do this from the Immediate Window (Ctrl-Alt-I)
If I run this code and stop on a breakpoint right after this:
var list = new List<int>();
list.Add(1);
list.Add(2);
I can type list.Add(3) in the Immediate Window (and press Enter to run it). If I then type ? list (in the Immediate Window) and press Enter, it will show that the 3rd element has been added.
Yes, there is a way to add or delete elements when you are debugging. When you are in debug mode in Visual Studio, you can simply add the code you need like the way you do while writing code and debug. You can also watch values in watch window. (Its in Microsoft visual studio community 2017). If you are using visual studio 2015, I think there is a option to pause below menu bar while debugging to add extra code in debug mode.
Actually, you will not need watch window. You can simple add code in editor. Alternatively, there is Immediate window(ctrl + Alt + I) to check on that.
You can also right click any variable, enter "Quick watch" and in expression text box evaluate expressions such as Add method on a list.
I'm getting quite annoyed with a feature of Resharper that I just cannot find how to disable independently.
With Resharper turned off, whenever I type prop in VS2015 and press TAB, I get the following auto-generated code:
public int MyProperty { get; set; }
and I'm then able to switch between int and MyProperty repeatedly by pressing TAB again.
I'm also able to use autocomplete to fill in the variable type as I type.
For example, lets say I wanted to create a property called "test" of type "string", I would do the following:
type prop
press TAB to generate the property code template
type stri
press TAB to autocomplete the variable type with string
press TAB to move to the variable name placeholder
type test
press Return to finish
perfect.
However, with Resharper enabled, whilst steps 1,2 and 3 still work, it all goes to pot after that!
If I press TAB to try and autocomplete the variable type, the cursor simply moves over to the variable name, leaving the variable type as stri.
If I then press TAB (or even SHIFT+TAB) again to try and get back to it, it simply finishes the line.
To make things clearer, I've included two gifs demonstrating my problem.
This first one shows what happens with Resharper disabled:
Whilst this one illustrates the frustration I'm currently experiencing with Resharper enabled:
I understand this is an old(er) question and already has an answer; however, I wanted to provide a solution for future SO readers that would allow one to continue using Visual Studio's IntelliSense as opposed to Resharper's.
I had the same issue as the OP (original poster) and found the issue to be caused by a conflict with Resharper's Live Templates. With Resharper enabled, the resolution of prop after Tab + Tab, resolves Resharper's prop Live Template and not Visual Studio's prop snippet. You might have notice that in OP's 2nd screen cap (the one with Resharper enabled) that the resolution of prop has a datatype shown as TYPE instead of int. This is because Resharper's Live Template has set this parameter name to TYPE, while Visual Studio's snippet has the same parameter set to int by default. This is what lead me to look at Resharper's Live Templates for a resolution; lo and behold turning off the prop Live Template fixes the issue.
Go to Resharper's Template Explorer (Resharper -> Tools -> Templates Explorer) you will see there is a Live Template named prop. Simply clear the check box for the prop Live Template and Visual Studio's prop snippet resolution, and datatype resolution for that matter, will start working again.
It looks like you have an intellisense setting conflict.
Re-Enable Resharper and then change this setting:
Resharper->Options->IntelliSense->General
Change the selection from "Visual Studio" to "Resharper", hit Save and the desired behaviour should be yours.
I find those shortcuts still work without disabling anything however sometimes this functionality stops working.
Currently using R# 2018.2 with the default keyboard mappings set to IntelliJ IDEA scheme (as I also use java) and the shortcuts are all available, but when they stop working closing all tabs and reopening the tab you are working on normally fixes it.
No restart or reset is needed.
When you hover over a property in VS it shows the datatype and the origin/name.
I would like it to show a description.
///<summary> only works in the intellisense when you browse your properties.
The ComponentModel.Description data attribute only works in the intergrated VS property window (IDE thing or what ever).
Is there a 3rd option to get to show it on mouseover?
If not, is there maybe a setting in ReSharper that does the trick?
You can try ReSharper > Options... > Code Inspection > Enable code analysis ON and Color Identifierts ON, this will replace VS tooltips with R# tooltips...
Once code has been written, the only way I know of to view the overloads for a method is to actually edit the method by deleting the Parenthesis () and reopening them.
Is there a shortcut key that I could press to activate this instead of having to edit my files?
For an example, please reference the ShowDialog Overload screen shot below:
With your cursor inside the parentheses, use the keyboard shortcut Ctrl-Shift-Space. If you changed the default, this corresponds to Edit.ParameterInfo.
Example:
Ctrl+Shift+Space shows the Edit.ParameterInfo for the selected method, and by selected method I mean the caret must be within the method parentheses.
Here is the Visual Studio 2010 Keybinding Poster.
And for those still using 2008.
Tested only on Visual Studio 2010.
Place your cursor within the (), press Ctrl+K, then P.
Now navigate by pressing the ↑ / ↓ arrow keys.
The default key binding for this is Ctrl+Shift+Space.
The underlying Visual Studio command is Edit.ParameterInfo.
If the standard keybinding doesn't work for you (possible in some profiles) then you can change it via the keyboard options page
Tools -> Options
Keyboard
Type in Edit.ParameterInfo
Change the shortcut key
Hit Assign
It happens that none of the above methods work. Key binding is proper, but tool tip simply doesn't show in any case, neither as completion help or on demand.
To fix it just go to Tools\Text Editor\C# (or all languages) and check the 'Parameter Information'. Now it should work
Great question; I had the same issue. Turns out that there is indeed a keyboard shortcut to bring up this list: Ctrl+Shift+Space (a variation of the basic IntelliSense shortcut of Ctrl+Space).
The command Edit.ParameterInfo (mapped to Ctrl+Shift+Space by default) will show the overload tooltip if it's invoked when the cursor is inside the parameter brackets of a method call.
The command Edit.QuickInfo (mapped to Ctrl+KCtrl+I by default) will show the tooltip that you'd see if you moused over the cursor location.
I know this is an old post, but for the newbies like myself who still hit this page this might be useful.
when you hover on a method you get a non clickable info-box whereas if you just write a comma in the method parenthesis the IntelliSense will offer you the beloved info-box with the clickable arrows.
Every once and a while the suggestions above stop working, if I restart Visual Studio they start working again though.
you mean's change overload.
just Press Shift + ↑ / ↓
Mine showed up in VS2010 after writing the first parenthesis..
so, prams.Add(
After doings something like that, the box with the up and down arrows appeared.