Отладка MFC: & quot; mfc100.dll & quot; не могу найти или открыть pdb

Я пытаюсь войти в исходный код MFC во время отладки. Тем не менее, Visual Studio, очевидно, имеет проблемы с загрузкой соответствующих символов:

C: \ WINDOWS \ symbols \ dll \ mfc100.i386.pdb: PDB не соответствует изображению.

Я проверял другие вопросы на SO, часто рекомендуется включить «серверы символов». Это не помогает, потому что кажется, что загружается только минимальный файл PDB (~ 2 МБ) вместо файла PDB, который фактически позволяет вам перейти к источнику (~ 20 МБ).

В соответствии с Не удается загрузить символы для mfc100.dll Я должен загрузить полный пакет символов из http://msdn.microsoft.com/en-us/windows/hardware/gg463028. Я сделал это, но это тоже не помогает, потому что этот пакет на самом деле не включает символы для mfc100.dll вообще.

Затем я попытался скопировать файлы PDB из другой системы. На моей локальной ОС Win7 у меня есть mfc100.i386.pdb 2011-06-10 (24,708 КБ). В системе, которую я отлаживаю, у меня mfc100.i386.pdb от 2010-03-18 (23,732 КБ). Оба не соответствуют изображению, хотя.

Так откуда мне взять правильные и полные файлы символов?

ОС: Windows 8 x86. Visual Studio 2013 с проектом VS 2010 C ++. версия mfc100.dll: 10.00.40219.01

WinDbg !sym noisy выход:

************* Symbol Path validation summary **************
Response                         Time (ms)     Location
OK                                             C:\Windows\symbols\dll
DBGHELP: Symbol Search Path: c:\windows\symbols\dll
DBGHELP: Symbol Search Path: c:\windows\symbols\dll
0:000> .reload
Reloading current modules

DBGHELP: c:\windows\symbols\dll\mfc100.i386.pdb - mismatched pdb
DBGHELP: c:\windows\symbols\dll\dll\mfc100.i386.pdb - file not found
DBGHELP: c:\windows\symbols\dll\symbols\dll\mfc100.i386.pdb - file not found
DBGHELP: C:\WINDOWS\SYSTEM32\mfc100.i386.pdb - file not found
DBGHELP: mfc100.i386.pdb - file not found
DBGHELP: Couldn't load mismatched pdb for C:\WINDOWS\SYSTEM32\mfc100.dll
*** ERROR: Module load completed but symbols could not be loaded for C:\WINDOWS\SYSTEM32\mfc100.dll
DBGHELP: mfc100 - no symbols loaded

************* Symbol Loading Error Summary **************
Module name            Error
mfc100                 PDB not found : c:\windows\symbols\dll\symbols\dll\mfc100.i386.pdb
Unable to locate the .pdb file in this location

3

Решение

Как объяснено в этом Пост MSDN (от Crescens2k) —

Эти символы должны соответствовать версии, которую использует VS, чтобы они могли выйти из синхронизации, если вы установите версию перенаправления VC, которая новее, чем используемая в настоящее время VS.
Проверьте версию CRT в каталоге VC, где установлен VS2010. Там должен быть каталог для переадресации, а под ним — ЭЛТ. Проверьте версию этих файлов и посмотрите, имеют ли они ту же версию, что и в вашем каталоге system32. Они обычно должны совпадать. Если они этого не делают, проверьте наличие обновлений для VS. Последняя версия должна быть 10.0.40219.325, поэтому убедитесь, что VS был обновлен, чтобы использовать это.

И позже —

…Попробуйте вручную применить обновление безопасности MFC. … и посмотреть, исправит ли это все.

К счастью, с помощью инструмента WinDbg вы можете определить свою проблему по несовпадающим символам, а совет опытного программиста (Crescens2k) помог решить крайне неприятную проблему несовпадения версий из «ада DLL».

2

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector