ChatGPT解决这个技术问题 Extra ChatGPT

Visual Studio debugger - Displaying integer values in Hex

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?

Believe it or not, this was also upsetting the increment of declared integers with big oopses like f + 1 = 10 (dec).

L
Leniel Maccaferri

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

https://i.stack.imgur.com/FNk29.png


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.
I was able to do it in the Call Stack window in VS2010.
Was in the Debugging toolbar for me.
Thanks God i got rid of this stupid annoying thing. Thanks @Leniel
Still relevant in 2020 with VS 2019!
G
Glenn Slayden

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


+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.
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.
This provides better discretional control on formatting vs the all or nothing of "Hexadecimal Display"
D
DJ'

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

https://i.stack.imgur.com/IhmV5.jpg


This is an overlooked button same as Hexadecimal Display in context menu, thanks.
m
marchewek

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.


w
wonea

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


J
John Pittaway

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.

https://i.stack.imgur.com/W3NZJ.png


vs2022 works same
u
user2704583

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