Read files' debug signatures. Check if executable matches the debugging symbols (DLL matches PDB) or if NuGet package matches the symbols package (NUPKG matches SNUPKG). Either programatically, or with CLI or with GUI application!
Available as NuGet package, contais utility classes that can be used to check and compare debug signatures of files. Supports Portable Executables, Program Databases and ZIP Archives.
var debugSignaturesReader = new DebugsignaturesReader();
List<DebugSignatureReading> readings;
// Portable Executables
readings = debugSignaturesReader.Read("library.dll");
readings = debugSignaturesReader.Read("program.exe");
// Program Databases
readings = debugSignaturesReader.Read("program.pdb");
// Archives
readings = debugSignaturesReader.Read("archive.zip");
readings = debugSignaturesReader.Read("nuget.package.1.0.0.nupkg");
readings = debugSignaturesReader.Read("symbols.package.1.0.0.snupkg");
// With bare DebugSignaturesReader
var debugSignaturesReader = new DebugsignaturesReader();
var dllSignature = debugSignaturesReader.Read("library.dll").Single().DebugSignature;
var pdbSignature = debugSignaturesReader.Read("library.pdb").Single().DebugSignature;
var matching = dllSignature == pdbSignature;
// With DebugSignaturesComparer's static method
var matching = DebugSignaturesComparer.AreMatching("library.dll", "library.pdb");
// With instance of DebugSignaturesComparer
var comparer = new DebugSignaturesComparer();
comparer.AddItem("library.dll");
comparer.AddItem("library.pdb");
var matching = comparer.ReadingsMatched;
Compare debug signatures directly from command line interface.
Simple Drag-and-Drop application allowing to easily check if files have matching debug signature.