Bug Description:
When loading a PDB, types whose name conflict with a type in the existing view have _DebugInfo appended to their name so they do not conflict. Unfortunately, when this happens, any references other types in the PDB make to that type are not updated to point to the updated name. This leads to _KPCR_DebugInfo referencing _KPRCB instead of _KPRCB_DebugInfo and structure members looking strange.
Steps To Reproduce:
Open ntoskrnl.exe from a recent windows
Find the type _KPCR_DebugInfo
Observe it references _KPRCB and not _KPRCB_DebugInfo and has like 0x8eff bytes of extra padding at the end
Expected Behavior:
I expected renamed types to be referenced correctly by other types from the pdb.
Screenshots:
Additional Information:
Possibly due to the types already referencing the bv type before rename happens and thus the NTRs are broken already
Fixed in 4.0. 4898 Unfortunately due to time constraints in 4.0 release I'm reverting the changes that were made for type deconfliction to fix this issue. I created this new issue to track the resolution: #5083
Version and Platform (required):
Bug Description: When loading a PDB, types whose name conflict with a type in the existing view have
_DebugInfo
appended to their name so they do not conflict. Unfortunately, when this happens, any references other types in the PDB make to that type are not updated to point to the updated name. This leads to_KPCR_DebugInfo
referencing_KPRCB
instead of_KPRCB_DebugInfo
and structure members looking strange.Steps To Reproduce:
_KPCR_DebugInfo
_KPRCB
and not_KPRCB_DebugInfo
and has like 0x8eff bytes of extra padding at the endExpected Behavior: I expected renamed types to be referenced correctly by other types from the pdb.
Screenshots:
Additional Information: Possibly due to the types already referencing the bv type before rename happens and thus the NTRs are broken already