Чтение файла .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
.