Вопрос:

Почему мои PDB для моего проекта VB6 не соответствуют сгенерированной DLL?

vb6 debug-symbols pdb-files

536 просмотра

3 ответа

26956 Репутация автора

У меня есть проект VB6 и я позволил ему создавать файлы pdb ( это показывает, как это сделать). Однако я не могу отладить их, и когда я проверяю их с помощью symcheck, я получаю такой вывод:

>SYMCHK: MyFile.dll         FAILED  - MyFile.pdb mismatched or not found

>SYMCHK: FAILED files = 1

>SYMCHK: PASSED + IGNORED files = 0

Я проверил с подробным выводом, что он находит pdb (даже перемещает его в каталог, который проверяет), но он просто не хочет совпадать.

Что может вызвать это и что я могу с этим поделать?

Автор: Sam Holder Источник Размещён: 03.02.2016 04:38

Ответы (3)


-1 плюса

1687 Репутация автора

У меня возникла та же проблема с Visual Studio (это было на проекте AC #). Поскольку вы не предоставили много информации о настройке вашей среды, трудно сказать точные причины проблемы.

Поскольку у меня нет опыта работы с Visual Basic IDE, я предложу причины проблемы с Visual Studio. В зависимости от ваших проектов и настроек это может быть применимо или не применимо к вашей VB IDE. Просто попробуйте применить их к этому.

Итак, вот неполный список потенциальных проблем, которые могут вызывать такое поведение в Visual Studio:

  1. DLL-файлы, используемые вашей программой, являются кэшированными
    • Это может произойти, если ваш исполняемый файл использует кэшированную версию библиотеки DLL (это также называется теневым копированием). Часто эти файлы находятся во временной папке. Чтобы это исправить, нужно просто удалить эти временные файлы.
  2. Ваш отладчик пытается загрузить модули и символы в неправильном месте
    • Например, Visual Studio можно настроить для загрузки модулей в определенном месте.
      Чтобы исправить это, нужно исправить место загрузки модулей ( обычно Ctrl+ D+ M).
  3. Ваша операция очистки / перестроения только перестраивает выходной проект.
    • Visual studio может перестроить только ваш выходной проект, в то время как вы хотели перестроить все свое решение.
      Чтобы это исправить, нужно убедиться, что оно корректно перестраивает все решение.
      Обратите внимание, что ваша чистая операция не может удалять ссылки, на которые ссылается проект, но которые не относятся к нему. Эти файлы будут оставаться в выходных папках, пока вы не удалите их.
  4. Visual Studio вошел в нестабильное состояние и, вероятно, должен быть перезапущен.
    • Я больше не считаю многочисленные случаи, когда простой перезапуск моего экземпляра Visual Studio исправлял большинство странных действий во время компиляции.
      Чтобы это исправить, нужно просто перезапустить Visual Studio.

Обычно это некий пуленепробиваемый способ:

  • очистить раствор
  • удалите все папки bin и obj в каждом из ваших проектов
  • удалить любую временную папку, используемую для теневого копирования
  • выполнить восстановление
Автор: John-Philip Размещён: 18.07.2017 01:10

0 плюса

149 Репутация автора

Вы можете попробовать установить совместимость вашего проекта VB6. Это ясно объяснено здесь: http://www.techrepublic.com/article/demystifying-version-compatibility-settings-in-visual-basic/

Возможно, изменение в связанном GUID вызывает несоответствие pdb.

Автор: Visual Studio Guy Размещён: 02.08.2017 11:11

0 плюса

11 Репутация автора

Я понятия не имею, почему это происходит, но вы пытались использовать

.symopt + 0X40

В виндбг? это может загрузить немного несовпадающий файл pdb. Когда я проект dbg c ++, а также получил несовпадающий файл pdb, эта опция действительно помогает.

Автор: wwc Размещён: 11.08.2019 07:48
Вопросы из категории :
32x32