我使用WinDbg转储结构信息,例如:
lkd> dt nt!_LIST_ENTRY
+0x000 Flink : Ptr32 _LIST_ENTRY
+0x004 Blink : Ptr32 _LIST_ENTRY
上面的示例显示了_LIST_ENTRY
结构的32位版本。 64位版本较大,Blink
位于0x008
。
我知道只要为这些Windows版本加载正确的符号,我就可以调试远程系统或分析故障转储。
我的问题:是否可以转储不同于我运行的Windows版本的结构,而无需远程调试或分析崩溃转储?
答案 0 :(得分:1)
是的,只要你有正确的符号就可以转储不同windows版本的结构。
转储将包含必须与pdbs匹配的符号所需的Windows版本和签名。
修改强>
关于在32位操作系统上调试64位转储/进程的具体问题,看起来您需要使用64位操作系统并使用64位WinDbg。
答案 1 :(得分:1)
如果您有64位模块(例如ntoskrnl.exe),您可以通过"打开崩溃转储..."命令和转储信息。
另一种方法:如果你有64位模块的pdb文件,你可以使用pdbdump实用程序