Find dll's of a specific process

Hello everyone,

is there a command in windbg to find dll’s loaded for a particular process ?
thought we have to troubleshoot the thread and thread stack , i was curious to know is there a way to find ?

Following is the command, you need to be in context of the process if you are in kernel mode.

lm

Date: Thu, 16 Dec 2010 05:19:52 -0500
From: xxxxx@live.com
To: xxxxx@lists.osr.com
Subject: [windbg] Find dll’s of a specific process

Hello everyone,

is there a command in windbg to find dll’s loaded for a particular process ?
thought we have to troubleshoot the thread and thread stack , i was curious to know is there a way to find ?


WINDBG is sponsored by OSR

For our schedule of WDF, WDM, debugging and other seminars visit:
http://www.osr.com/seminars

To unsubscribe, visit the List Server section of OSR Online at http://www.osronline.com/page.cfm?name=ListServer

> Following is the command, you need to be in context of the process if you are in kernel mode.

lm

To display only user-mode modules make better use of u-option:
lm u

!manish lm is not specific to process context , which means , when you execute lm , it would display all the modules which were captured during the memory dump creation.

eg: if you change process context from lsass.exe to test.exe and run lm command the modules would remain the same.

what i am trying to understand is "which process is using specific modules " ?

In order to switch processes and look at the user module list you need to
do:

.process /r /p

That will switch processes and refresh the user loaded module list (WinDBG
only maintains a single user module list at any point).

As an aside, this will all be described in detail in the next issue of The
NT Insider.

-scott


Scott Noone
Consulting Associate
OSR Open Systems Resources, Inc.
http://www.osronline.com

Hope to see you at the next OSR kernel debugging class February 14th in
Columbia, MD!

Hey scott,
thanks for reply, i was trying to check process explorer behavior of a process. When i right click a process i could see usermode / kernel mode dll’s loaded.

similarly i was trying to check in windbg . per process specific dll’s

eg: from a complete memory dump , i have 20 process . Process A might use test.dll , process b might use test1.dll . but when i run lm, both test.dll and test1.dll are listed.
i would like to know which dll’s are being used by processes.

On Thu, Dec 16, 2010 at 4:37 PM, wrote:
> i would like to know which dll’s are being used by processes.

I would try what Scott suggested with one extra step:
.reload /u
lm u

Alternatively maybe you should look at !dlls.

Kris

On Thu, Dec 16, 2010 at 5:19 PM, Krzysztof Uchronski wrote:
> I would try what Scott suggested with one extra step:
> .reload /u
> lm u

And of course I forgot about crucial part:
.reload /u
.process /r /p
lm u

Kris

*example*:

*find kernel32.dll*

windbg command : lmfm ker*

0:001> lmfm ker*
start end module name
7c800000 7c8f6000 kernel32 C:\WINDOWS\system32\kernel32.dll

Hi All,
i have followed scott’s , manish suggestion.

I have switched the processes and analyzed it accordingly. For my test i took “iexplorer” and “lsass”
and i was able to view all the loaded dll’s of that process.

I opened up process explorer and checked the same for lsass and iexplorer processes, results were 99% matching , but i see some dll’s which are listed in process explorer are not listed in windbg.