'0n0' 是什么意思?意思是?

发布于 2024-11-03 15:35:36 字数 97 浏览 4 评论 0原文

Windbg 中的 0n0 是什么意思?我的 windbg 显示所有带有 0n1500 等的局部变量。

What does 0n0 mean in windbg ? My windbg is showing all local variables with 0n1500 etc..

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

错爱 2024-11-10 15:35:36

it ('0n') 是用于表示windbg 中的十进制表示形式的数字前缀。例如,它允许将非前缀用于十六进制。

快乐编码。

It ('0n') is the number prefix used to indicate a decimal representation in windbg. It allows the non-prefixed to be used for hexadecimal, for instance.

Happy coding.

海之角 2024-11-10 15:35:36

它是十进制的 MASM 语法,就像十六进制的 0x 一样。

It's MASM syntax for decimal, like 0x for hex.

孤独患者 2024-11-10 15:35:36

0n 代表基数10,即。 n 之后显示的数字采用十进制

可能的值
0n - 十进制
0x - 十六进制
0t - 八进制
0y - 二进制

您可以使用 n 命令

n16 - 将基数更改为十六进制
n10 - 将基数更改为十进制
n8 - 将基数更改为八进制

请注意,不允许使用n2

以下内容取自调试程序时的 WinDBG 命令窗口。
我正在尝试从其 PEB(进程环境块)获取操作系统内部版本号。
我使用的是Win10 19044版本。

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

请注意,这仅适用于数字数据类型,而其他类型(例如指针)仍将以十六进制显示,无论您对 n 使用什么参数。

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

0n represents the base 10, ie. the number being displayed after n is in decimal notation.

Possible values for this:
0n - Decimal
0x - Hexadecimal
0t - Octal
0y - Binary

You can change the default display base (radix) for numeric data display and entry using n command.

n16 - Change base to Hexadecimal
n10 - Change base to Decimal
n8 - Change base to Octal

Note that n2 is not allowed.

The following is taken from WinDBG command window while debugging a program.
I am trying to get OS build number from its PEB (Process environment block).
I am using Win10 19044 build.

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

Note that this will work only for numeric data types, and other types, such as pointers will still display in Hex, no matter what argument you use with n.

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 is of type void * (pointer type), hence is unaffected by n command.
We can obviously do an explicit type cast.

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
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文