Debugging Tools for Windows

lm (List Loaded Modules)

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

语法

lm Options [a Address] [m Pattern | M Pattern

参数

Options
下面这些选项的任意组合:
o
仅显示已加载模块。
l
仅显示已加载符号信息的模块。
v
显示详细信息。输出中包含符号文件名、映像文件名、校验和信息、时间戳和该模块是否是托管代码(CLR)的信息。如果相关的头丢失或页换出,则该信息不能显示出来。
u
(仅内核模式) 仅显示用户模式符号信息。
k
(仅内核模式) 仅显示内核模式符号信息。
e
仅显示有符号问题的模块。包括没有符号和符号状态为CT#MExport的模块。关于这些符号的更多信息,查看符号状态缩写
c
显示校验和数据。
1m
减少输出以使得只包含模块的名字。当使用.foreach关键字将该命令的输出通过管道传输给另一个命令作为输入时很有用。
sm
输出按模块名排序而不是按起始地址。

另外,还可以包含下面这些选项中的一个。如果一个都没有包含,则显示中包括符号文件名。 

i
显示映像文件名。
f
显示完整映像路径。(如果没有使用.reload -s命令,则该路径总是和初始加载信息中显示的匹配。) 当使用f时,符号类型信息不会显示出来。
n
显示映像名。使用n时,符号类型信息不会显示。
p
显示映射的映像名。使用p时,符号类型信息不会显示。
t
显示文件的时间戳。使用t时,符号类型信息不会显示。
a Address
指定包含在模块中的一个地址。只有包含该地址的模块会被显示出来。如果Address是一个表达式,它必须用圆括号括起来。
m Pattern
指定模块名必须匹配的模板。Pattern可以包含各种通配符和修饰符。关于语法的更多信息,查看字符串通配符语法

注意 大多数情况下,模块名是不包含扩展名的文件名。例如,如果要显示Flpydisk.sys 驱动的信息,使用lm mflpydisk命令,而不是lm mflpydisk.sys。有些时候,模块名和文件名有显著的不同。更多信息,查看可执行映像路径

M Pattern
指定映像路径必须匹配的模板。Pattern可以包含各种通配符和修饰符。关于语法的更多信息,查看字符串通配符语法

环境

模式 用户模式、内核模式
目标 活动目标、崩溃转储
平台 所有

注释

lm 命令列出所有模块和每个模块的符号状态。

Microsoft Windows Server 2003和之后版本的Windows为用户模式进程维护一个 已卸载模块列表(unloaded module list)。 调试用户模式进程或dump文件时,lm命令也会显示这些已卸载模块。

该命令显示几个列或字段,每个都有不同的标题。某些标题有特定含义:

下面的是lm命令对Windows Server 2003目标机使用的示例。该示例包含ms* 选项,所以只有以"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选项的命令一次。比较两个例子的排序。

Example 1:

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

Example 2:

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)

Build machine: CAPEBUILD