Modules list-tool

G

Gisle Vanem

Are anyone aware of a tool that can show me at run-time
which modules (pyd/dll) are loaded into a Python program
at a specific time (or over time)?

To clarify, e.g. when running a sample from PyQt4
(examples\tutorials\addressbook\part1.pyw) and using Process Explorer [1],
I can launch WinDbg from it and get this list of modules:
.....

ModLoad: 1d000000 1d00a000 G:\ProgramFiler\Python27\python.EXE
ModLoad: 7c900000 7c9b1000 F:\WINDOWS\system32\ntdll.dll
ModLoad: 7c800000 7c8f7000 F:\WINDOWS\system32\kernel32.dll
ModLoad: 1e000000 1e261000 f:\windows\system32\python27.dll
ModLoad: 7e410000 7e4a1000 F:\WINDOWS\system32\USER32.dll
ModLoad: 77f10000 77f59000 F:\WINDOWS\system32\GDI32.dll
ModLoad: 77dc0000 77e6a000 F:\WINDOWS\system32\ADVAPI32.dll
ModLoad: 77e70000 77f03000 F:\WINDOWS\system32\RPCRT4.dll
ModLoad: 77fe0000 77ff1000 F:\WINDOWS\system32\Secur32.dll
ModLoad: 7c9c0000 7d1d8000 F:\WINDOWS\system32\SHELL32.dll
ModLoad: 77c00000 77c58000 F:\WINDOWS\system32\msvcrt.dll
ModLoad: 77f60000 77fd6000 F:\WINDOWS\system32\SHLWAPI.dll
ModLoad: 78520000 785c3000 f:\windows\WinSxS\x86_Microsoft.VC90.CRT_1fc8b3b9a1e18e3b_9.0.30729.6161_x-ww_31a54e43\MSVCR90.dll
ModLoad: 76370000 7638d000 f:\windows\system32\IMM32.DLL
ModLoad: 62f20000 62f29000 f:\windows\system32\LPK.DLL
ModLoad: 75420000 7548b000 f:\windows\system32\USP10.dll
ModLoad: 773c0000 774c3000
f:\windows\WinSxS\x86_Microsoft.Windows.Common-Controls_6595b64144ccf1df_6.0.2600.6028_x-ww_61e65202\comctl32.dll
ModLoad: 5d5d0000 5d66a000 F:\WINDOWS\system32\comctl32.dll
ModLoad: 78aa0000 78b5f000 f:\windows\system32\MSVCR100.dll
ModLoad: 00d90000 00f29000 g:\ProgramFiler\Python27\lib\site-packages\PyQt4\QtCore.pyd
ModLoad: 67000000 67260000 g:\ProgramFiler\Python27\lib\site-packages\PyQt4\QtCore4.dll
ModLoad: 774d0000 7760e000 F:\WINDOWS\system32\ole32.dll
ModLoad: 71aa0000 71ab7000 f:\windows\system32\WS2_32.dll
ModLoad: 71a90000 71a98000 f:\windows\system32\WS2HELP.dll
ModLoad: 78480000 7850e000 f:\windows\WinSxS\x86_Microsoft.VC90.CRT_1fc8b3b9a1e18e3b_9.0.30729.6161_x-ww_31a54e43\MSVCP90.dll
ModLoad: 00a60000 00a73000 g:\ProgramFiler\Python27\lib\site-packages\sip.pyd
ModLoad: 011f0000 0177f000 g:\ProgramFiler\Python27\lib\site-packages\PyQt4\QtGui.pyd
ModLoad: 65000000 657c4000 g:\ProgramFiler\Python27\lib\site-packages\PyQt4\QtGui4.dll
....

-------------

My example may be mooth since part1.pyw above (when I enter
the debugger) is just waiting for events. The stack of pythonw.exe
as shown in Process Explorer:
....
ntdll.dll!ZwWaitForMultipleObjects+0xc
kernel32.dll!WaitForMultipleObjectsEx+0x12c
USER32.dll!RealMsgWaitForMultipleObjectsEx+0x13e
QtCore4.dll!QEventDispatcherWin32::processEvents+0x3c3
ntdll.dll!RtlAcquirePebLock+0x28

Is there a tool that can do something similar? (written in Python maybe?).
But a bit simpler to use than my current method. Just launch it from the
command-line; something like "pyXX part1.pyw <more args>"

[1] http://technet.microsoft.com/en-gb/sysinternals/bb896653

--gv
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,769
Messages
2,569,582
Members
45,061
Latest member
KetonaraKeto

Latest Threads

Top