dtx (Display Type - Extended Debugger Object Model Information)
The dtx command displays extended symbolic type information using the debugger object model. The dtx command is similar to the dt (Display Type) command.
dtx -DisplayOpts [Module!]Name Address
Parameters
DisplayOpts
Use the following optional flags to change how the output is displayed.
-a Displays array elements in a new line with its index.
-r [n] Recursively dump the subtypes (fields) up to n levels.
-h Displays command line help for the dtx command.
Module!
An optional parameter specifying the module that defines this structure, followed by the exclamation point. If there is a local variable or type with the same name as a global variable or type, you should include module name to specify the global variable.
Name
A type name or a global symbol.
Address
Memory address containing the type.
Environment
Item | Description |
---|---|
Modes | User mode, kernel mode |
Targets | Live, crash dump |
Platforms | All |
Additional Information
The following examples show how to use the dtx command.
Use the address and the name to display extended symbolic type information.
0: kd> dtx nt!_EPROCESS ffffb607560b56c0
(*((nt!_EPROCESS *)0xffffb607560b56c0)) [Type: _EPROCESS]
[+0x000] Pcb [Type: _KPROCESS]
[+0x2d8] ProcessLock [Type: _EX_PUSH_LOCK]
[+0x2e0] RundownProtect [Type: _EX_RUNDOWN_REF]
[+0x2e8] UniqueProcessId : 0x4 [Type: void *]
[+0x2f0] ActiveProcessLinks [Type: _LIST_ENTRY]
Display additional information using the -r recursion option.
0: kd> dtx -r2 HdAudio!CAzMixertopoMiniport fffff806`d24992b8
(*((HdAudio!CAzMixertopoMiniport *)0xfffff806d24992b8)) [Type: CAzMixertopoMiniport]
[+0x018] m_lRefCount : -766760880 [Type: long]
[+0x020] m_pUnknownOuter : 0xfffff806d24dbc40 [Type: IUnknown *]
[+0x028] m_FilterDesc [Type: PCFILTER_DESCRIPTOR]
[+0x000] Version : 0xd24c2890 [Type: unsigned long]
[+0x008] AutomationTable : 0xfffff806d24c2780 [Type: PCAUTOMATION_TABLE *]
[+0x000] PropertyItemSize : 0x245c8948 [Type: unsigned long]
[+0x004] PropertyCount : 0x6c894808 [Type: unsigned long]
[+0x008] Properties : 0x5718247489481024 [Type: PCPROPERTY_ITEM *]
[+0x010] MethodItemSize : 0x55415441 [Type: unsigned long]
[+0x014] MethodCount : 0x57415641 [Type: unsigned long]
[+0x018] Methods : 0x4ce4334540ec8348 [Type: PCMETHOD_ITEM *]
[+0x020] EventItemSize : 0x8b41f18b [Type: unsigned long]
[+0x024] EventCount : 0xd8b48f4 [Type: unsigned long]
[+0x028] Events : 0x7d2d8d4cfffdf854 [Type: PCEVENT_ITEM *]
[+0x030] Reserved : 0x66fffd79 [Type: unsigned long]
[+0x010] PinSize : 0xd24aa9b0 [Type: unsigned long]
[+0x014] PinCount : 0xfffff806 [Type: unsigned long]
[+0x018] Pins : 0xfffff806d24aa740 [Type: PCPIN_DESCRIPTOR *]
[+0x000] MaxGlobalInstanceCount : 0x57555340 [Type: unsigned long]
[+0x004] MaxFilterInstanceCount : 0x83485741 [Type: unsigned long]
[+0x008] MinFilterInstanceCount : 0x8b4848ec [Type: unsigned long]
[+0x010] AutomationTable : 0xa5158b48ed33c000 [Type: PCAUTOMATION_TABLE *]
[+0x018] KsPinDescriptor [Type: KSPIN_DESCRIPTOR]
Tip: Use the x (Examine Symbols) command to display the address of an item of interest.
0: kd> x /d HdAudio!CazMixertopoMiniport*
...
fffff806`d24992b8 HdAudio!CAzMixertopoMiniport::`vftable' = <no type information>
...