Windows 调试符号 <unnamed-tag>

标签 windows debugging windbg symbols

我目前正在做一些 Windows 7 内核调试工作,对于我正在查看的许多结构,windbg 没有给出结构名称,而是简单地显示 <unnamed-tag>

这是 IRP 结构的示例: enter image description here

我猜这个结构因此被它的名字以外的东西引用,但是在阅读了一些之后我似乎找不到对此的解释。任何人都可以解释这个未命名标签的含义吗?

谢谢

更新 经过更多阅读,我认为未命名标签实际上是没有名称的结构中的嵌入式联合,根据 http://www.rowleydownload.co.uk/arm/documentation/gnu/gcc/Unnamed-Fields.html在 C 代码中是合法的。

如果这是正确的,我很好奇 Windbg 是如何知道如何重新将这些结构重建在一起的。

最佳答案

是的,它是未命名的联合体。 windbg 简单地显示与 union 定义的所有可能格式相同的地址,用户有责任判断程序正在引用哪个字段,通常有一个“上下文”附加到指定定义联合的类型的结构,例如有点在标志归档中。

关于Windows 调试符号 <unnamed-tag>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17988212/

相关文章:

c# - 在 C# 中获取本地 Windows 用户登录 session 时间戳

delphi - 填充监 window 口中的所有字段值

java - IntelliJ IDEA 2017.1 不会在断点处停止

heap-memory - !heap -stat -h 不显示分配

python - 在 Windows 中将 VIM 用于 Python IDE?

c# - 在 Windows 8 中读取文本文件

C#.NET 从 Web 应用程序访问串行端口

windows - 在 Windows 7 上关闭 perl-debug-m ansi 转义序列

c++ - 奇怪的函数调用约定

c - Windbg 条件断点与嵌套结构中的字符串比较