看起来 WinDbg 的默认值是以十进制显示整数,以十六进制显示无符号整数。有没有办法以十进制显示所有内容?
我尝试使用这里提到n
的命令
虽然它给了我语法错误:
:086> n[10]
^ Syntax error in 'n[10]'
知道我在做什么错吗?
似乎您不应该使用方括号。在MSDN 页面上,这些方括号用于显示 radix 参数是可选的。
当参数被取消时,当前的基数会显示给您。
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 的语法中处理数字的进一步阅读可在此处获得。
但回到你原来的问题......
是的,n 10
应该足以强制数字以十进制显示。如果由于某种原因出现问题,您始终可以使用?
如上所示的命令来执行转换。
描述 WinDbg 如何评估表达式的扩展文章(包括有关 n 命令影响的详细信息)可在此处获得:
尝试使用命令:-
.enable_long_status 0