Visual Studio debugger - Displaying integer values in Hex
Asked Answered
S

8

174

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?

Spitler answered 28/7, 2010 at 15:25 Comment(1)
Believe it or not, this was also upsetting the increment of declared integers with big oopses like f + 1 = 10 (dec).Eboh
R
318

Right-click your Watch Window or Immediate Window and uncheck Hexadecimal Display option.

enter image description here

Refutative answered 28/7, 2010 at 15:30 Comment(9)
wasn't available in Tools Dialog. Only way I could change it back was to add Variable to Watch window and right click in Value field and then I had the Hexadecimal Display check box.Spitler
I was able to do it in the Call Stack window in VS2010.Unfeigned
Was in the Debugging toolbar for me.Kip
I think its in the watch window not immediate window.Glyco
@Soham Dasgupta: if you read the question you see that the user is using Visual Studio 2008 and he mentions the Immediate Window. The answer I provided here is useful in his case as it solves the problem for that specific version of VS. The comments above shows different ways of achieving the same result in Visual Studio 2010.Refutative
Thanks God i got rid of this stupid annoying thing. Thanks @LenielPointtopoint
I'm using VS2013 and can't find where that option is. and sometimes it's hard to follow stackoverflow comments because my tool menus are all Korean..Crock
Still relevant in 2020 with VS 2019!Nodus
Note that there is no indication that it also changes the value of the variable hovers in your code view once you exit the watch window. But this is what you wanted I hope.Guava
E
52

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
Eakins answered 21/4, 2011 at 21:31 Comment(3)
+1, but although MSDN states that h is the correct modifier for hex display, it seems (at least in my version, VS 2012 Premium) that x works instead (e.g. 1024,x instead of 1024,h). Placing h returns the "CXX0026 bad format string" error.Markmarkdown
I suspect that might depend on the language that the module that's being debugged was written in. It's certainly true that debugger expression syntax changes according to the current language. From your message, it appears that you were using C++; I answered as if for C#, although perhaps I shouldn't have assumed that since the OP didn't specify.Eakins
This provides better discretional control on formatting vs the all or nothing of "Hexadecimal Display"Capitate
R
23

There is a Hex button shown when Visual Studio is run in Debug mode to enable/disable the Hex display

Visual Studio Debug Mode - hex button

Rafael answered 2/7, 2013 at 19:4 Comment(1)
This is an overlooked button same as Hexadecimal Display in context menu, thanks.Kenji
B
14

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.

Blip answered 20/2, 2012 at 12:21 Comment(0)
A
9

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

Aimeeaimil answered 4/7, 2011 at 11:27 Comment(0)
V
7

Visual Studio 2017 Decimal vs. hexadecimal display is controlled only from the Watch dialog.

  1. Break after setting the variable.
  2. Right mouse click the variable and select "Add Watch" or "QuickWatch"
  3. Right mouse click the line in the Watch dialogue.
  4. Uncheck "Hexadecimal Display"

The display will now be in decimal.

enter image description here

Volatile answered 12/8, 2020 at 16:45 Comment(1)
vs2022 works sameTellford
M
3

In the immediate window you can uncheck the Hexadecimal Display option.

Mckinzie answered 4/9, 2013 at 8:43 Comment(0)
F
0

Visual Studio 2022 17.8.3

The only available selection for changing HEX display mode is in the Watch window. Have to perform a breakpoint and then add a watch variable. Then the hexadecimal mode can be turned off. There is no general selection for the output window for this.

Fidge answered 22/1 at 14:32 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.