Чтение файла .pdb

У меня есть много файлов в формате .pdb, некоторые из них загружены, но до сих пор я не могу использовать или читать то, что внутри, поэтому я ищу, как прочитать и просмотреть формат файла .pdb из MS Windows XP.

Кто-нибудь из вас знает, как его открыть?

Ответы

Ответ 1

Если вы имеете в виду PDB как в "базе данных программы", которую использует отладчик:

Файлы PDB содержат данные о файле, например EXE или DLL, который используется для облегчения отладки. Существуют общедоступные интерфейсы, которые позволяют извлекать данные из файла. См. Примеры здесь:

Если вы имеете в виду PDB, как в базе данных Palm Pilot, тогда я ничего не знаю об этом, но формат файла доступен здесь:

Ответ 2

Microsoft выпустила исходный код своих форматов PDB, поэтому другие разработчики компиляторов, такие как команда LLVM, могут легче реализовать формат PDB.

https://github.com/Microsoft/microsoft-pdb/

Чтобы фактически выгрузить вывод файла, просто используйте это:

https://github.com/Microsoft/microsoft-pdb/blob/master/cvdump/cvdump.exe

cvdump Whatever.pdb

Ответ 3

Вы можете использовать инструмент DBH из Windows SDK.

&'C:\Program Files\Debugging Tools for Windows (x64)\dbh.exe' -v MySymbol.pdb dump

Ответ 4

В настоящее время я настоятельно рекомендую парсер LLVM PDB, llvm-pdbutil.

Это отличный и многофункциональный дампер PDB, отлично дополняющий Microsoft cvdump.
Для получения подробной информации и документации см.:

Некоторые полезные команды для начала:

  • llvm-pdbutil dump -all your.pdb
  • llvm-pdbutil bytes -syms your.pdb
  • llvm-pdbutil -help

Получение llvm-pdbutil:

Согласно LLVM 7.0.0, последней официальной версии, llvm-pdbutil.exe не распространяется с двоичными файлами LLVM, поэтому он должен быть llvm-pdbutil.exe из исходного кода.

Тем не менее, любой, кому по llvm-pdbutil.exe неофициальный бинарный файл, может получить домашний llvm-pdbutil.exe от:
https://github.com/shaharv/tools/blob/master/llvm-pdbutil/llvm-pdbutil.7z

Он построен из LLVM 9.0.0svn r353038 (ветка разработки) с MinSizeRel с использованием сообщества Visual Studio 2017.

Сборка llvm-pdbutil:

Для сборки llvm-pdbutil из исходного кода в Windows вам необходимо получить и настроить сборку LLVM. Следуйте инструкциям на https://llvm.org/docs/GettingStarted.html.

Однако есть некоторые необходимые дополнения для поддержки PDB. Подводя итог (для VS 2017):

  • Клонировать репозиторий LLVM: git clone https://github.com/llvm/llvm-project.git
  • cd llvm-project
  • mkdir build && cd build
  • Если не работает с консоли Visual Studio: set VSINSTALLDIR=c:\Program Files (x86)\Microsoft Visual Studio\2017\Community\.
  • cmake -G "Visual Studio 15 2017" -A x64 -Thost=x64 -DLLVM_ENABLE_DIA_SDK=ON../llvm
  • В Visual Studio создайте проект Tools/llvm-pdbutil.