WinDbg常用命令系列---显示加载的模块列表lm

lm (List Loaded Modules)

lm命令显示指定的加载模块。输出包括模块的状态和路径。

lmOptions [a Address] [m Pattern | M Pattern]

参数:

  • Options
    以下选项的任意组合:
    D----使用调试器标记语言显示输出。
    o---仅显示加载的模块。
    l---仅显示其符号信息已加载的模块。
    v---显示详细信息。 显示所包括的符号文件名称、 图像文件名称、 校验和信息、 版本信息、 日期戳,时间戳和是否托管该模块的信息代码 (CLR)。 如果相关标头缺失或分页出未显示此信息。
    u---(仅适用于内核模式)仅显示用户模式下符号的信息。
    k---(仅适用于内核模式)仅显示内核模式下符号的信息。
    e---仅显示有符号问题的模块。这些符号包括没有符号的模块和符号状态为C,T, #,M 或export的模块。
    c---显示校验和
    lm---减少输出,以便除了模块的名称之外不包含任何内容。如果使用.foreach标记将命令输出管道化为另一个命令的输入,则此选项非常有用。
    sm---按模块名称而不是起始地址对显示进行排序。
    此外,您只能包含以下选项之一。如果不包括这些选项中的任何一个,则显示将包括符号文件名。
    i---显示的图像文件名称。
    f---显示完整图像路径。(除非发出.reload-s命令,否则此路径始终与初始加载通知中显示的路径匹配。)使用f时,不显示符号类型信息。
    n---显示jimage名称。使用n时,不显示符号类型信息。
    p---显示映射的映像名称。 当使用 p 时,不显示符号的类型信息。
    t---显示的文件时间戳。 当使用 t 时,不显示符号的类型信息。
  • a Address
    指定此模块中包含的地址。只显示包含此地址的模块。如果address包含表达式,则必须将其括在括号中。
  • m Pattern
    指定模块名必须匹配的模式。模式可以包含各种通配符和说明符。在大多数情况下,模块名是没有文件扩展名的文件名。例如,如果要显示有关flpydisk.sys驱动程序的信息,请使用lm mflpydisk命令,而不是lm mflpydisk.sys。在某些情况下,模块名与文件名有很大不同。
  • M Pattern
    指定image路径必须匹配的模式。模式可以包含各种通配符和说明符。

 

lm命令列出所有模块以及每个模块的符号状态。Microsoft Windows Server 2003和更高版本的Windows维护用户模式进程的卸载模块列表。在调试用户模式进程或转储文件时,lm命令还显示这些已卸载的模块。此命令显示多个列或字段,每个列或字段具有不同的标题。其中一些标题具有特定含义:

  • 模块名通常是没有文件扩展名的文件名。在某些情况下,模块名与文件名有很大不同。
  • 符号类型紧跟在模块名称之后。此列未标记。如果已加载符号,则符号文件名将跟随此列。
  • 模块中的第一个地址显示为start。模块结束后的第一个地址显示为结束。例如,如果开始为“faab4000”,结束为“faab8000”,则模块将从0xfaab4000扩展到0xfaab7fff(含)。
  • 仅限lmv:image path列显示可执行文件的名称,包括文件扩展名。通常,完整路径包含在用户模式中,但不包含在内核模式中。
  • 仅限LMV:加载的符号图像文件值与图像名称相同,除非存在Microsoft代码视图符号。
  • 仅限lmv:通常不使用映射内存图像文件值。如果调试器正在映射映像文件(例如,在小型转储调试期间),则此值是映射映像的名称。
下面的代码示例显示了带有Windows Server 2003目标计算机的lm命令。此示例包括m和s*选项,因此仅显示以“s”开头的模块。
kd> lm m s*
start    end        module name
f9f73000 f9f7fd80   sysaudio     (deferred)                 
fa04b000 fa09b400   srv          (deferred)                 
faab7000 faac8500   sr           (deferred)                 
facac000 facbae00   serial       (deferred)                 
fb008000 fb00ba80   serenum      e:\mysymbols\SereEnum.pdb\.......
fb24f000 fb250000   swenum       (deferred)                 

Unloaded modules:
f9f53000 f9f61000   swmidi.sys
fb0ae000 fb0b0000   splitter.sys
fb040000 fb043000   Sfloppy.SYS

以下两个示例显示lm命令一次不带任何选项,一次带sm选项。比较两个例子中的排序顺序。

0:000> lm
start    end        module name
01000000 0100d000   stst       (deferred)
77c10000 77c68000   msvcrt     (deferred)
77dd0000 77e6b000   ADVAPI32   (deferred)
77e70000 77f01000   RPCRT4     (deferred)
7c800000 7c8f4000   kernel32   (deferred)
7c900000 7c9b0000   ntdll      (private pdb symbols) c:\db20sym\ntdll.pdb
0:000> lmsm
start    end        module name
77dd0000 77e6b000   ADVAPI32   (deferred)
7c800000 7c8f4000   kernel32   (deferred)
77c10000 77c68000   msvcrt     (deferred)
7c900000 7c9b0000   ntdll      (private pdb symbols)  c:\db20sym\ntdll.pdb
77e70000 77f01000   RPCRT4     (deferred)
01000000 0100d000   stst       (deferred)
上一篇:javascript – 在调用所有promise之后通过jQuery Deferreds循环


下一篇:javascript – 将回调附加到发布