【发布时间】:2013-03-26 00:30:04
【问题描述】:
看起来 WinDbg 的默认值是以十进制显示整数,以十六进制显示无符号整数。 有没有办法以十进制显示?
我尝试使用n 命令mentioned here
它给了我语法错误:
:086> n[10]
^ Syntax error in 'n[10]'
知道我做错了什么吗?
【问题讨论】:
看起来 WinDbg 的默认值是以十进制显示整数,以十六进制显示无符号整数。 有没有办法以十进制显示?
我尝试使用n 命令mentioned here
它给了我语法错误:
:086> n[10]
^ Syntax error in 'n[10]'
知道我做错了什么吗?
【问题讨论】:
似乎你不应该使用方括号。在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 应该足以强制数字以十进制显示。如果由于某种原因出现问题,您可以随时使用如上所示的? 命令来执行转换。
【讨论】:
描述 WinDbg 如何评估表达式的扩展文章(包括有关 n 命令影响的详细信息):
【讨论】:
尝试使用命令:-
.enable_long_status 0
【讨论】: