【问题标题】:What does a value with e` mean in windbge`的值在windbg中是什么意思
【发布时间】:2021-02-13 17:30:20
【问题描述】:

我正在使用 windbg 分析故障转储,对于 unsigned long long 类型的变量之一,在本地我可以看到它的值是“0x002a002e`002a0000”。 e前后的值是什么意思。还有 e(acute) 本身是什么意思?

【问题讨论】:

  • e 是一个十六进制数字。它后面的字符是一个分组字符,用于使完整的 16 位十六进制数字更易于阅读(如逗号或句点用于大十进制数字)。否则你会看到0x002a002e002a0000

标签: c++ debugging windbg size-t


【解决方案1】:

格式在MASM numbers and operators 中描述。所以e 就像十六进制数的a 部分一样。为了便于阅读,一个 64 位十六进制数被重音符号分隔为两个 32 位部分。正如sign extension 的定义中所定义的那样,使用重音可能会产生更多含义。

话虽如此,002a002e002a0000 的值看起来与 UTF16 字符串 *.* 非常相似。所以也许你在某个地方出现了缓冲区溢出。

0:000> .dvalloc 1000
Allocated 1000 bytes starting at 000001d6`4a4c0000
0:000> eq 000001d6`4a4c0000 002a002e002a0000
0:000> dq 000001d6`4a4c0000 L1
000001d6`4a4c0000  002a002e`002a0000
0:000> du 000001d6`4a4c0000 + 2
000001d6`4a4c0002  "*.*"

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-11-06
    • 1970-01-01
    • 1970-01-01
    • 2020-03-03
    • 2015-09-21
    • 2019-05-07
    • 2013-02-10
    相关资源
    最近更新 更多