Windbg
中的 0n0
是什么意思?我的 windbg
显示全部本地变量为 0n1500
。
Windbg
中的 0n0
是什么意思?我的 windbg
显示全部本地变量为 0n1500
。
'0n' 是在 Windbg 中用来表示十进制数的前缀。这使得非前缀形式可以被用于表示十六进制。
编程愉快。
0n
表示十进制,即在n后显示的数字以十进制表示法。
可能的取值如下:
0n
- 十进制
0x
- 十六进制
0t
- 八进制
0y
- 二进制
您可以使用n
命令更改数字数据显示和输入的默认显示基数(底数)。
n16
- 切换为十六进制
n10
- 切换为十进制
n8
- 切换为八进制
请注意,不允许使用n2
。
0:000> n 16
base is 16
0:000> ?? @$proc->OSBuildNumber
unsigned short 0x4a64
0:000> n 10
base is 10
0:000> ?? @$proc->OSBuildNumber
unsigned short 0n19044
0:000> n 8
base is 8
0:000> ?? @$proc->OSBuildNumber
unsigned short 0t45144
0:000> n 8
base is 8
0:000> ?? @$proc->ImageBaseAddress
void * 0x00007ff6`6dfa0000
0:000> n 10
base is 10
0:000> ?? @$proc->ImageBaseAddress
void * 0x00007ff6`6dfa0000
0:000> n 16
base is 16
0:000> ?? @$proc->ImageBaseAddress
void * 0x00007ff6`6dfa0000
ImageBaseAddress
是一个 void * 类型(指针类型),因此不受 n
命令的影响。
我们显然可以进行显式类型转换。
0:000> n 10
base is 10
0:000> ?? DWORD(@$proc->ImageBaseAddress)
DWORD 0n1845100544
0:000> n 16
base is 16
0:000> ?? DWORD(@$proc->ImageBaseAddress)
DWORD 0x6dfa0000