【问题标题】:Hexadecimal to decimal in windbgwindbg中的十六进制转十进制
【发布时间】:2013-03-26 00:30:04
【问题描述】:

看起来 WinDbg 的默认值是以十进制显示整数,以十六进制显示无符号整数。 有没有办法以十进制显示?

我尝试使用n 命令mentioned here

它给了我语法错误:

:086> n[10]
      ^ Syntax error in 'n[10]'

知道我做错了什么吗?

【问题讨论】:

    标签: hex decimal windbg


    【解决方案1】:

    似乎你不应该使用方括号。在MSDN page 上,这些方括号用于表明基数参数是可选的。

    当参数被忽略时,当前的基数会显示给你。

    0:000> n
    base is 10
    

    当您提供参数(不带方括号)时,当前基数会更改并回显给您。

    0:000> n 16
    base is 16
    

    设置基数后常用的技巧是使用? (Evaluate Expression) 命令将数字转换为新的基数(在本例中,基数为 16)。

    0:000> ? 0n10
    Evaluate expression: 10 = 0000000a
    
    0:000> ? 0y11
    Evaluate expression: 11 = 00000003
    

    从十六进制(以 16 为底)转换回十进制:

    0:000> ? a
    Evaluate expression: 10 = 0000000a
    

    请记住,一旦设置了基数,输入和输出都会受到影响,这意味着当您要输入一个不是当前基数的数字时,您需要像上面最后一个示例中所做的那样指定基数.有关如何在类似 MASM 的语法中处理数字的更多信息,请参阅 here

    但回到你原来的问题......

    是的,n 10 应该足以强制数字以十进制显示。如果由于某种原因出现问题,您可以随时使用如上所示的? 命令来执行转换。

    【讨论】:

    • 是的,我只是将 [] 误解为命令的一部分,而不仅仅是表示它是可选参数。
    【解决方案2】:

    描述 WinDbg 如何评估表达式的扩展文章(包括有关 n 命令影响的详细信息):

    https://www.osronline.com/article.cfm?id=540

    【讨论】:

      【解决方案3】:

      尝试使用命令:-

      .enable_long_status 0

      【讨论】:

        猜你喜欢
        • 2014-04-20
        • 2018-07-26
        • 2015-04-21
        • 1970-01-01
        • 2014-10-30
        • 2020-09-25
        • 1970-01-01
        • 2021-03-22
        相关资源
        最近更新 更多