ChatGPT解决这个技术问题 Extra ChatGPT

Visual Studio 调试器 - 以十六进制显示整数值

我正在使用 Visual Studio 2008,我刚刚注意到当我将鼠标悬停在变量上以及即时窗口中时,调试器将整数值显示为十六进制。我想我一定是不小心按了快捷键什么的。

有人以前有过这个吗?如何将其设置回以十进制显示?

信不信由你,这也用像 f + 1 = 10 (dec) 这样的大 oopses 扰乱了声明整数的增量。

L
Leniel Maccaferri

右键单击 Watch WindowImmediate Window 并取消选中十六进制显示选项。

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


在工具对话框中不可用。我可以将其更改回来的唯一方法是将变量添加到监视窗口并右键单击值字段,然后我有十六进制显示复选框。
我能够在 VS2010 的调用堆栈窗口中做到这一点。
在我的调试工具栏中。
感谢上帝,我摆脱了这个愚蠢烦人的事情。谢谢@Leniel
在 2020 年仍然与 VS 2019 相关!
G
Glenn Slayden

您还可以通过将调试器格式说明符附加到变量名称来在 Visual Studio 监视窗口中基于每个变量选择十六进制或十进制显示。在监视窗口中,输入:

myInt,h
myInt,d

其他非常有用的格式说明符是 ac(见脚注)用于“始终计算”,以及 nq 用于显示“无引号”。它们可以一起使用:

my_string_func(),ac,nq

nqDebuggerDisplay 属性中很有用,它可以出现在类中:

[DebuggerDisplay("{my_string_func(),nq}")]
class MyClass
{
    /* ...example continues below... */

...或在一个类中的一个或多个字段上:

    [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

请注意,早期版本的 MSDN 文档页面错误地说“Ac”(大写“A”)——这不起作用


+1,但尽管 MSDN 声明 h 是十六进制显示的正确修饰符,但似乎(至少在我的版本 VS 2012 Premium 中)x 可以代替(例如 1024,x 而不是 1024,h)。放置 h 会返回“CXX0026 bad format string”错误。
我怀疑这可能取决于正在调试的模块所用的语言。调试器表达式语法会根据当前语言而变化,这当然是正确的。从您的消息看来,您使用的是 C++;我回答的好像是 C#,虽然也许我不应该假设,因为 OP 没有指定。
与“十六进制显示”的全有或全无相比,这提供了更好的自由裁量控制
D
DJ'

在调试模式下运行 Visual Studio 时会显示一个十六进制按钮以启用/禁用十六进制显示

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


这是一个被忽略的按钮,与上下文菜单中的十六进制显示相同,谢谢。
m
marchewek

右键单击几乎每个调试窗口(即时窗口除外)的客户端空间 - watch/locals/autos/threads/call stack - 并取消选中“Hexadecimal Display”选项。调试时,调试工具栏中还有一个“Hex”按钮(默认为“Step Over”右侧)。


w
wonea

在 Visual Studio 2010 中,我还在调试工具栏中看到它,它以黄色“十六进制”突出显示,我只是单击它并返回(正常)十进制值


J
John Pittaway

Visual Studio 2017 十进制与十六进制显示仅由 Watch 对话框控制。

设置变量后中断。鼠标右键单击变量并选择“Add Watch”或“QuickWatch” 鼠标右键单击 Watch 对话框中的行。取消选中“十六进制显示”

现在显示为十进制。

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


vs2022 工作原理相同
u
user2704583

在即时窗口中,您可以取消选中十六进制显示选项。