

resym est un utilitaire qui permet de naviguer et d'extraire des types à partir de fichiers PDB.
Cliquez pour exécuter la version Web?
Inspiré par Pdbripper et PDBEX.

Si vous avez installé de la rouille, vous pouvez facilement installer Resym avec cargo :
cargo install --git https://github.com/ergrelet/resym --tag v0.4.0
Après cela, vous pouvez invoquer resym et resymc de n'importe où, à travers la ligne de commande.
Gardez à l'esprit que vous devez faire installer les dépendances requises pour que resym fonctionne correctement. Consultez la documentation utilisateur pour plus de détails.
Si vous souhaitez utiliser la version GUI, exécutez simplement l'exécutable resym .
Une version CLI (nommée resymc ) est également disponible:
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
Sur Ubuntu , vous devrez peut-être installer: libxcb-shape0-dev , libxcb-xfixes0-dev et libglib2.0-dev .
git clone https://github.com/ergrelet/resym.git && cd resym
cargo build --release
./target/release/resym
La version GUI pourrait avoir du mal à afficher d'énormes sorties (> 20 Mo). La mise en évidence de la syntaxe invalidante (et / ou la reconstruction de la dépendance) aidera, mais, d'une manière générale, la version CLI est plus adaptée lors du déversement de types avec une énorme quantité de dépendances.
Les espaces de noms C ++ et les types de modèles ne sont pas reconstruits pour le moment, ce qui signifie que la sortie reconstruite pour les types C ++ n'est pas nécessairement compilable.
La version Web ne peut pas gérer les fichiers PDB supérieurs à ~ 2,1 Go en raison de la façon dont les fichiers sont accessibles et des limitations 32 bits des cibles wasm32 . Cela pourrait changer à l'avenir avec la prise en charge wasm64 / memory64 .
J'ai souvent besoin d'extraire et d'analyser confortablement les types C ++ à partir de fichiers PDB 1 Go, de manière interactive, mais je n'ai pas pu trouver un outil qui coche toutes les cases pour moi jusqu'à présent, donc c'est ma prise de vue de faire cet outil.
Donc, si vous êtes dans le même bateau, cet outil pourrait vous être utile.