windbg.exe: не удалось загрузить DLL доступа к данным, 0x80004005 - PullRequest
4 голосов
/ 20 сентября 2011

Я пытаюсь отладить дамп 32-битного процесса из процесса, запущенного на компьютере x64.Я использую версию windbg x86 на своем ноутбуке x64.Я следовал рекомендациям здесь , но все еще получаю это:

0:000> .cordll -ve -u -l
CLR DLL status: No load attempts
0:000> !clrstack
CLRDLL: C:\Windows\Microsoft.NET\Framework\v4.0.30319\mscordacwks.dll:4.0.30319.17020 f:8
doesn't match desired version 4.0.30319.237 f:8
CLRDLL: Loaded DLL c:\symbols\public\mscordacwks_x86_x86_4.0.30319.237.dll\4DD234A8670000\mscordacwks_x86_x86_4.0.30319.237.dll
Failed to load data access DLL, 0x80004005
Verify that 1) you have a recent build of the debugger (6.2.14 or newer)
            2) the file mscordacwks.dll that matches your version of clr.dll is 
                in the version directory
            3) or, if you are debugging a dump file, verify that the file 
                mscordacwks_<arch>_<arch>_<version>.dll is on your symbol path.
            4) you are debugging on the same architecture as the dump file.
                For example, an IA64 dump file must be debugged on an IA64
                machine.

You can also run the debugger command .cordll to control the debugger's
load of mscordacwks.dll.  .cordll -ve -u -l will do a verbose reload.
If that succeeds, the SOS command should work on retry.

If you are debugging a minidump, you need to make sure that your executable
path is pointing to clr.dll as well.

Насколько я могу определить, mscordacwks_x86_x86_4.0.30319.237.dll успешно загружен, но я все еще получаюошибка.Чего мне не хватает?

Ответы [ 2 ]

3 голосов
/ 30 октября 2011

Я решил проблему с помощью ProcDump , чтобы получить 32-разрядный дамп 32-разрядного процесса, который выполнялся на 64-разрядной машине.Я могу успешно проверить это с помощью 32-битного windbg.Больше подробностей в этом блоге .

0 голосов
/ 06 октября 2011

Похоже, у вас есть 32-битный файл дампа - в противном случае ошибка будет выглядеть как

CLR DLL status: ERROR: Unable to load DLL mscordacwks_AMD64_x86_2.0.50727.3053.dll, Win32 error 0n87

По крайней мере, согласно сообщению в блоге «Не удалось загрузить DLL доступа к данным, 0x80004005» - ИЛИ - Что такое mscordacwks.dll? в заметках из темного угла блога.

Обратите внимание на сочетание AMD64_x86 и x86_x86 в вашем сообщении об ошибке.

Для меня это всегда потому, что у меня нет правильной версии mscordacwks. Также возможно, что WindBG не сможет его найти. Смотрите мой ответ на Проблема отладки зависания-дампа в windbg для одного метода, который я использовал, чтобы найти / извлечь правильную версию из исправлений безопасности. Чтобы заставить windbg загрузить его, я установил путь изображения для windbg, чтобы он указывал на каталог, в котором я его сохранил.

...