Windows调试符号<unnamed-tag> </unnamed-tag>

时间:2013-08-01 07:56:43

标签: 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如何知道如何重新组合这些结构。

2 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:1)

键入dt _IRP -b

-b

递归显示块。如果显示的结构包含 子结构,将其递归扩展到任意深度, 完整显示。指针仅在它们位于 原始结构,而不是子结构。

来源:https://docs.microsoft.com/en-us/windows-hardware/drivers/debugger/dt--display-type-

相关问题