2010-07-28 87 views
117

我使用Visual Studio 2008,并且我刚刚注意到,当我将鼠标悬停在变量上并且也在直接窗口中时,调试器以十六进制显示整数值。我想我一定是有意无意地碰到了快捷键。Visual Studio调试器 - 以十六进制显示整数值

以前有过这个吗?如何将其重新设置为以十进制显示?

+0

不管你信不信,这也会使得像'f + 1 = 10(十)'这样的巨大声明的整数增加。工具对话框中不提供 – 2016-03-25 10:58:11

回答

204

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

enter image description here

+4

。只有这样我才能改回它的方法是添加Variable to Watch窗口并右键单击Value字段,然后我有十六进制显示复选框。 – fizzer 2010-07-28 15:40:24

+8

我能够在VS2010的** Call Stack **窗口中完成它。 – StuperUser 2011-01-19 10:28:29

+1

在我的调试工具栏中。 – 2011-02-04 10:43:39

34

您也可以通过附加一个调试器格式说明变量名选择十六进制小数显示每个变量的基础在Visual Studio的监视窗口上。在监视窗口,输入:

myInt,h 
myInt,d 

其他非常有用的是指定ac(见注)的“总是计算”,并nq与显示“暂无报价”。它们可以一起使用:

my_string_func(),ac,nq 

nq里面DebuggerDisplay属性,它可以在一个类出现有用的:在一个或多个字段(S)一类的内部

[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”) - 不工作
+0

+1,但尽管MSDN指出'h'是十六进制显示的正确修饰符,似乎(至少在我的版本中,VS 2012 Premium)那'x'可以代替(例如'1024,x'而不是'1024,h')。放置'h'将返回“CXX0026错误格式字符串”错误。 – Groo 2015-06-09 09:26:28

+0

我怀疑这可能取决于正在调试的模块所用的语言。当然,调试器表达式语法根据当前语言而改变。从你的消息看来,你似乎在使用C++;我回答好像是为了C#,虽然也许我不应该假设,因为OP没有指定。 – 2017-01-06 02:17:41

+0

这提供了更好的自由控制格式与“十六进制显示”的全部或没有 – 2017-10-31 18:10:31

9

在Visual Studio 2010中我也看到了它的调试工具栏中,它以黄色'十六进制'突出显示,我只需点击它并返回(正常)十进制值

9

右键单击几乎每个调试窗口的客户端空间(立即窗口除外) - watch/locals/autos /线程/调用堆栈 - 和取消选中“十六进制显示”选项。 在调试时,在调试工具栏(默认情况下为“Step Over”的右侧)中还有一个“十六进制”按钮。

14

有当Visual Studio中在调试模式下运行,以启用/禁用十六进制显示

Visual Studio Debug Mode - hex button

+0

这是一个被忽视的按钮,与上下文菜单中的十六进制显示相同,谢谢。 – 2015-05-01 14:20:47

3

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