windbg dump : 加载的 dll 的路径,只显示 dll 名称

windbg dump : path of loaded dll which only shows dll name

我正在尝试调试 dll 版本和路径的问题。

我有一个转储,它显示了 lmfsm 的输出,其中没有显示几个 dll 的路径。 其中一些 dll 是特定于应用程序的,所以我知道它们应该来自与 MainEXE 相同的文件夹,但我不确定其他的。

没有显示 dll present in same dir as main exe (dllPresentInSameDirAsMainExe.dll) 和 dll coming from gac (dll_from_gac.dll) 的路径。 因此,正在为 System.IO.COmpression.dll 选择哪个 dll,它也存在于我的本地 MainEXE 文件夹中。

0:000> lmfsm
00000000`00220000 00000000`00228000   MainEXE D:\ABCPATH\MainEXEPkg.Code.1.0.0.20200323.1\MainEXE.exe
00000000`1aab0000 00000000`1ac3c000   dllPresentInSameDirAsMainExe dllPresentInSameDirAsMainExe.dll
00000000`1db50000 00000000`1dbcc000   dll_from_gac Dll.From.GAC.dll
00000000`20350000 00000000`2036e000   System_IO_Compression System.IO.Compression.dll
00007ffb`d0250000 00007ffb`d025e000   System_IO_Compression_FileSystem_ni C:\Windows\assembly\NativeImages_v4.0.30319_64\System.IO.Cf61e09c5#\c4e0a673a512f8626f9b499f8574dc90\System.IO.Compression.FileSystem.ni.dll
00007ffb`d7700000 00007ffb`d8344000   System_ni C:\Windows\assembly\NativeImages_v4.0.30319_64\Systema8a818dfb2a81d684cd89cd3b83a80\System.ni.dll

那么,如何找到进程转储中加载的System.IO.Compression.dll路径?

WinDbg 帮助说:

f

Displays the full image path. (This path always matches the path that is displayed in the initial load notification, unless you issued a .reload -s command.) When you use f, symbol type information is not displayed.

确实,.reload -s 似乎可以解决问题:

0:000> lmf
start    end        module name
00f50000 00f58000   DebuggingEnumDefinition DebuggingEnumDefinition.exe
71640000 71692000   MSCOREE  C:\WINDOWS\SysWOW64\MSCOREE.DLL
74e50000 74eef000   apphelp  C:\WINDOWS\SysWOW64\apphelp.dll
751a0000 7539e000   KERNELBASE C:\WINDOWS\SysWOW64\KERNELBASE.dll
759a0000 75a80000   KERNEL32 C:\WINDOWS\SysWOW64\KERNEL32.dll
777c0000 7795a000   ntdll    ntdll.dll   

0:000> .reload -s
......
0:000> lmf
start    end        module name
00f50000 00f58000   DebuggingEnumDefinition C:\...\bin\Debug\DebuggingEnumDefinition.exe
71640000 71692000   MSCOREE  C:\WINDOWS\SYSTEM32\MSCOREE.DLL
74e50000 74eef000   apphelp  C:\WINDOWS\SYSTEM32\apphelp.dll
751a0000 7539e000   KERNELBASE C:\WINDOWS\System32\KERNELBASE.dll
759a0000 75a80000   KERNEL32 C:\WINDOWS\System32\KERNEL32.dll
777c0000 7795a000   ntdll    C:\WINDOWS\SYSTEM32\ntdll.dll