我有一些本地(如/SUBSYSTEM:NATIVE
)Windows 程序,我想生成小型转储,以防它们崩溃。通常,我会使用dbghelp.dll
,但由于本机进程只能使用从 导出的函数ntdll.dll
,所以我不能。
所以我自己实现了转储程序。它几乎完成了,但不幸的是,我无法在崩溃的进程中找到卸载模块的列表(该列表肯定存储在某个地方,因为 WinDbg 能够显示它)。
在哪里可以找到 Windows 进程中已卸载模块的列表?
编辑:该列表肯定存储在进程内存中的某个位置,即使我在卸载模块后附加它,WinDbg 也可以显示该列表。WinDbg 的文档中还有一条注释:
Microsoft Windows Server 2003 和更高版本的 Windows 维护用户模式进程的卸载模块列表。[...]