1

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

我尝试使用这里提到n的命令

虽然它给了我语法错误:

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

知道我在做什么错吗?

4

3 回答 3

7

似乎您不应该使用方括号。在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应该足以强制数字以十进制显示。如果由于某种原因出现问题,您始终可以使用?如上所示的命令来执行转换。

于 2013-03-26T01:13:13.707 回答
2

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

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

于 2013-04-02T15:21:44.140 回答
0

尝试使用命令:-

.enable_long_status 0

于 2015-01-22T12:10:09.737 回答