如何从 windows 转储文件 (procdump) 导出已加载库的列表

How to export a list of the loaded libraries from windows dump file (procdump)

我正在查看 Visual Studio 2019 年的 *.dmp 文件 - 它显示了加载系统 DLL、文件名、版本、文件夹等的列表。

我想复制此信息以粘贴到 Excel,但无法从 Visual Studio 复制。

有人知道我是否可以将其从转储文件导出到文本文件吗?

你说的是下面粘贴的数据吗?

00120000 00148000   cdb        (deferred)             
    Image path: cdb.exe
    Image name: cdb.exe
    Image was built with /Brepro flag.
    Timestamp:        0324D46E (This is a reproducible build file hash, not a timestamp)
    CheckSum:         00025C20
    ImageSize:        00028000
    File version:     10.0.18362.1
    Product version:  10.0.18362.1
    File flags:       0 (Mask 3F)
    File OS:          40004 NT Win32
    File type:        1.0 App
    File date:        00000000.00000000
    Translations:     0409.04b0
    Information from resource tables:
        CompanyName:      Microsoft Corporation
        ProductName:      Microsoft® Windows® Operating System
        InternalName:     CDB.Exe
        OriginalFilename: CDB.Exe
        ProductVersion:   10.0.18362.1
        FileVersion:      10.0.18362.1 (WinBuild.160101.0800)
        FileDescription:  Symbolic Debugger for Windows
        LegalCopyright:   © Microsoft Corporation. All rights reserved.

这是由 windbg 中的 lmv 命令生成的(我不知道它在 vs

中的等价物是什么

既然你标记了 windbg,我会给你一个将这些信息收集到文本文件中的简短演示

D:\>cdb -logo cdbmods.txt -c "lmv;q" -z cdb.dmp

您可以复制粘贴、转置等的输出

D:\>dir /b *cdb*
cdb.dmp
cdbmods.txt

D:\>wc -l cdbmods.txt
894 cdbmods.txt


D:\>sed -n 44,48p cdbmods.txt
00360000 00388000   cdb        (deferred)
    Image path: cdb.exe
    Image name: cdb.exe
    Image was built with /Brepro flag.
    Timestamp:        0324D46E (This is a reproducible build file hash, not a timestamp)

D:\>

WinDbg 已经包含在另一个答案中,所以我将在下面参考 Visual Studio。

第一步是将 DMP 文件加载到 VS 中。

此初始屏幕还显示了已加载模块的列表,但不允许从中复制。相反,单击右侧的 Debug with Native Only(或调试托管或混合模式应用程序时可用的其他选项之一),然后等待符号加载。

然后使用菜单打开Debug/Windows/Moduleswindow.

这是一个常规列表,您可以在其中 select 行(包括所有行)和 Ctrl-C 将它们复制为文本。

或者,从菜单中打开查看/其他Windows/命令Window,然后输入debug.listModules命令。

这是一个常规文本框,您可以根据需要 select 和 Ctrl-C 进行复制。