【问题标题】:Visual Studio debugger - Displaying integer values in HexVisual Studio 调试器 - 以十六进制显示整数值
【发布时间】:2011-03-22 05:35:18
【问题描述】:

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

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

【问题讨论】:

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

标签: debugging visual-studio-2008 integer hex


【解决方案1】:

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

【讨论】:

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

您还可以通过附加调试器格式说明符在 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 可以代替(例如 @987654332 @ 而不是 1024,h)。放置h 会返回“CXX0026 bad format string”错误。
  • 我怀疑这可能取决于编写被调试模块的语言。调试器表达式语法会根据当前语言发生变化,这当然是正确的。从您的消息看来,您使用的是 C++;我回答的好像是 C#,虽然也许我不应该假设,因为 OP 没有指定。
  • 与“十六进制显示”的全有或全无相比,这提供了更好的格式化控制
【解决方案3】:

Visual Studio 在调试模式下运行时会显示一个 Hex 按钮来启用/禁用 Hex 显示

【讨论】:

  • 这是一个被忽略的按钮,与上下文菜单中的十六进制显示相同,谢谢。
【解决方案4】:

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

【讨论】:

    【解决方案5】:

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

    【讨论】:

      【解决方案6】:

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

      【讨论】:

        【解决方案7】:

        Visual Studio 2017 十进制与十六进制显示只能通过 Watch 对话框进行控制。

        1. 设置变量后中断。
        2. 鼠标右键单击变量并选择“添加观察”或“快速观察”
        3. 鼠标右键单击 Watch 对话框中的行。
        4. 取消选中“十六进制显示”

        现在显示为十进制。

        【讨论】:

          猜你喜欢
          • 2011-02-18
          • 2018-06-02
          • 1970-01-01
          • 1970-01-01
          • 2013-07-01
          • 1970-01-01
          • 2013-10-21
          相关资源
          最近更新 更多