Skip to content

Allow user to provide ID when generating a PDB#2678

Merged
siegfriedpammer merged 2 commits intoicsharpcode:masterfrom
andrewcrawley:custom-pdb-id
May 1, 2022
Merged

Allow user to provide ID when generating a PDB#2678
siegfriedpammer merged 2 commits intoicsharpcode:masterfrom
andrewcrawley:custom-pdb-id

Conversation

@andrewcrawley
Copy link
Copy Markdown
Contributor

Problem

The Visual Studio debugger's decompiler integration needs to be able to control the ID used for generated PDBs. There are a couple of scenarios that are interesting to us:

  1. Generating a PDB for an assembly that was built without debug info. The PDB writer currently fails in this case, since the input assembly has no debug directory from which to extract the relevant info. The debugger can provide values that will allow us to load the generated PDB.
  2. Generating a PDB for an assembly that has multiple debug directories. The PDB writer currently uses the first debug directory it finds, but this isn't necessarily the correct one. The debugger can disambiguate these and provide the correct values.

Solution

This commit adds a new parameter to PortablePdbWriter.WritePdb that allows the caller to specify the exact Guid and timestamp that should be used in the generated PDB.

  • At least one test covering the code changed

This commit adds a new parameter to PortablePdbWriter.WritePdb that
allows the caller to specify the exact Guid and timestamp that should be
used in the generated PDB.  This will be useful for several scenarios
that are interesting for the Visual Studio debugger's integration:
1. Generating a PDB for an assembly that was built without debug info.
   The PDB writer currently fails in this case, since the input assembly
   has no debug directory from which to extract the relevant info.  The
   debugger can provide values that will allow us to load the generated
   PDB.
2. Generating a PDB for an assembly that has multiple debug directories.
   The PDB writer currently uses the first debug directory it finds, but
   this isn't necessarily the correct one.  The debugger can provide the
   correct values.
@siegfriedpammer
Copy link
Copy Markdown
Member

Thank you for your contribution!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants