

resym - это утилита, которая позволяет просматривать и извлекать типы из файлов PDB.
Нажмите, чтобы запустить веб -версию?
Вдохновленный Pdbripper и Pdbex.

Если у вас установлена ржавчина, вы можете легко установить Resym с помощью cargo :
cargo install --git https://github.com/ergrelet/resym --tag v0.4.0
После этого вы можете вызвать resym и resymc из любого места, через командную линию.
Имейте в виду, что вам необходимо установить необходимые зависимости для правильного запуска resym . Проверьте пользовательскую документацию для получения более подробной информации.
Если вы хотите использовать версию GUI, просто запустите исполняемый файл resym .
Также доступна версия CLI (с именем resymc ):
resymc 0.4.0
resymc is a utility that allows browsing and extracting types from PDB files.
USAGE:
resymc.exe <SUBCOMMAND>
FLAGS:
-h, --help Prints help information
-V, --version Prints version information
SUBCOMMANDS:
diff Compute diff for a type between two given PDB files
diff-module Compute diff for a module between two given PDB files
dump Dump type from a given PDB file
dump-all Dump all types from a given PDB file
dump-module Dump module from a given PDB file
help Prints this message or the help of the given subcommand(s)
list List types from a given PDB file
list-modules List modules from a given PDB file
На Ubuntu вам может потребоваться установить: libxcb-shape0-dev , libxcb-xfixes0-dev и libglib2.0-dev .
git clone https://github.com/ergrelet/resym.git && cd resym
cargo build --release
./target/release/resym
Версия GUI может изо всех сил пытаться отобразить огромные результаты (> 20 МБ). Отключение выделения синтаксиса (и/или реконструкции зависимости вообще) поможет, но, вообще говоря, версия CLI более подходит при сбросе типов с огромным количеством зависимостей.
Пространства имен C ++ и типы шаблонов не реконструированы в данный момент, что означает, что реконструированный выход для типов C ++ не обязательно компилируется.
Веб-версия не может обрабатывать файлы PDB больше ~ 2,1 ГБ из-за того, как доступ к файлам, и 32-разрядные ограничения целей wasm32 . Это может измениться в будущем с поддержкой wasm64 / memory64 .
Мне часто нужно удобно извлекать и анализировать типы C ++ из файлов 1GB+ PDB, интерактивно, но я не смог найти инструмент, который пока помешает все коробки для меня, так что этот выстрел в создание этого инструмента.
Так что, если вы находитесь в одной лодке, этот инструмент может быть вам полезен.