I am using 64-bit WinDbg to dump struct information, and am trying to dump 32-bit struct information.
I start WinDbg, choose File > Kernel Debug and start a Local session. Then I dump a struct:
lkd> dt nt!_LIST_ENTRY
+0x000 Flink : Ptr64 _LIST_ENTRY
+0x008 Blink : Ptr64 _LIST_ENTRY
As expected, this shows the 64-bit struct information.
I understand that I can debug remote systems or analyze crash dumps, as long as I load the correct symbols for those Windows versions.
It tried to set the .effmach
to x86
, as was hinted in this comment, but I still get the 64-bit struct:
lkd> .effmach x86
Effective machine: x86 compatible (x86)
lkd:x86> .symfix
lkd:x86> .reload
Connected to Windows 7 7601 x64 target at (date), ptr64 TRUE
Loading Kernel Symbols
...............................................................
.................................................................
Loading User Symbols
..........................................
Loading unloaded module list
......
lkd> dt nt!_LIST_ENTRY
+0x000 Flink : Ptr64 _LIST_ENTRY
+0x008 Blink : Ptr64 _LIST_ENTRY`
As you can see, this is not the 32-bit _LIST_ENTRY
struct, but the 64-bit struct we already saw above.
My question: Is it possible to dump 32-bit struct information in a 64-bit WinDbg, without a remote 32-bit system and without a 32-bit crash dump?