windbg dump: путь к загруженной dll, который показывает только имя dll - PullRequest
1 голос
/ 16 апреля 2020

Я пытаюсь отладить проблемы с dll-версией и путями.

У меня есть дамп, который показывает этот вывод для lmfsm, который не показывает пути для нескольких dll. Некоторые из этих dll определены приложением c, поэтому я знаю, что они должны приходить из той же папки, что и MainEXE, но я не уверен насчет других.

Не указан путь для dll present in same dir as main exe (dllPresentInSameDirAsMainExe. dll) и dll coming from gac (dll_from_ga c .dll). Итак, какую dll выбирают для System.IO.COmpression.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\System\66a8a818dfb2a81d684cd89cd3b83a80\System.ni.dll

Итак, как найти путь System.IO.Compression.dll, загруженный в дамп процесса

1 Ответ

3 голосов
/ 17 апреля 2020

Справка WinDbg гласит:

f

Отображение полного пути к изображению. (Этот путь всегда совпадает с путем, отображаемым в уведомлении о начальной загрузке, если только вы не выполнили команду .reload -s.) При использовании f информация о типе символа не отображается.

И действительно , .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
...