51 Commits
Author SHA1 Message Date
Siegfried Pammer 31bbcf41bc Fix handling of file extensions in project export. 2025-02-21 09:14:23 +01:00
Siegfried Pammer ca78d4a14d Use MetadataFile instead of PEFile in TypeSystem. 2024-03-24 15:35:13 +01:00
ElektroKill 38019ad5bf Introduce PdbExtraTypeInfo struct and adjusted IDebugInfoProvider 2023-12-14 18:36:57 +01:00
ElektroKill 5b526cfeac Read and use tuple element names and dynamic type information from PDBs 2023-11-07 21:39:16 +01:00
Siegfried Pammer 4893c58ac0 #1806: Use NormalizeTypeVisitor.TypeErasure.EquivalentTypes in DebugInfoGenerator.HandleMethodBody to fix false positives in assertion. 2023-08-05 16:46:11 +02:00
Kirill Osenkov 7992d148e8 Generate sequence points for expression-bodied properties and indexers 2023-07-02 20:16:10 +02:00
James May bce0f7b23b Add CustomDebugInformation kind EncStateMachineStateMap 2023-06-24 21:28:02 +02:00
Siegfried Pammer c3d0e5ecc2 Fix #1784: Move RemoveEmbeddedAttributes transform to ICSharpCode.Decompiler and do no longer decompile embedded attributes in WholeProjectDecompiler and PortablePdbWriter. 2022-11-04 21:20:45 +01:00
Siegfried Pammer 3075ec92fe #2823: Use row ID instead of token in AsyncDebugInfo blob. 2022-11-01 10:10:06 +01:00
Siegfried Pammer 343694c549 Generalize progress reporting for decompilation and PDB generation. 2022-10-21 10:18:05 +02:00
Andrew Crawley (US - DIAGNOSTICS) a494bfadbe Add progress reporting to PortablePdbWriter
This commit adds a new parameter to PortablePdbWriter.WritePdb that
allows the caller to provide an implementation of IProgress to receive
status updates on the pdb generation process.  Currently, the progress
reports include the number of files generated so far and the total
number of files.
2022-10-21 09:27:47 +02:00
Andrew Crawley (US - DIAGNOSTICS) 696cbc2136 Allow user to provide ID when generating a PDB
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.
2022-04-27 14:49:16 -07:00
David Wengier 52628a219a Add TypeDefinitionDocuments to custom debug information data 2021-12-13 21:16:36 +11:00
Siegfried Pammer a48f0d311c Fix #2330: Add conditional sub directory support 2021-12-05 16:33:39 +01:00
Siegfried Pammer 07199e2ecf Fix #2038: Add proper support for Long paths on Windows 10 and limit path segments to 255 characters (with long path support) or 30 characters. If a PathTooLongException is thrown display a better error message on project export. 2021-09-06 21:02:31 +02:00
Siegfried Pammer 5a8b488e99 PDBGen: Fix exception in case an ILFunction gets defined in C# twice: This may happen if a compiler-generated function gets transformed into a lambda expression, but its method definition is not removed from the syntax tree. 2021-03-11 14:13:23 +01:00
Siegfried Pammer 51dcab484d Add support for inline display of blob contents of CustomDebugInformation entries in PDBs. 2021-03-04 20:48:46 +01:00
Siegfried Pammer 924e7a0ec4 Fix "Select PDB" command when working with bundles. 2020-11-14 21:12:51 +01:00
dotnet format 0d9f871a4f #2128: Reformat the whole code base. 2020-08-28 01:05:38 +02:00
dymanoid a952cda502 Create dedicated namespace for project decompiler 2020-06-07 11:46:46 +02:00
Jackson Davis 8180070bc6 Merge branch 'master' of https://github.com/icsharpcode/ILSpy into dev/jacdavis/sequencepoints 2020-04-06 17:33:06 -07:00
Jackson Davis 6ab1f98fa3 Expand the range of sequence points out the closest empty ilstack
or implicit sequence point without creating overlapping sequence points.
If such a location cannot be found do, nothing. Fill in the
gaps with hidden sequence points.

Also emit a sequence point for
the prolog to account for seqeunce point there emitted by the C#
compiler. Without this, the debugger can stop there on a step in
using the original pdb, then decompile resulting in a no-code at this
location failure.
2020-04-06 09:58:25 -07:00
Daniel Grunwald 0cf50aa827 Fix #1959: Resolve the "F(G<A,B>(7));" grammar ambiguity by inserting parentheses when necessary. 2020-04-01 21:10:35 +02:00
Siegfried Pammer c2a2cf43f2 Fix #1482: SequencePointBuilder fails with an assertion when trying to create sequence points for LINQ expressions 2020-03-24 18:43:28 +01:00
Siegfried Pammer c95dc9efd7 Merge branch 'master' of https://github.com/icsharpcode/ILSpy into pdbgen-enhancements 2020-03-07 23:00:52 +01:00
Siegfried Pammer 413c5b3baf PortablePdbWriter: Add primitive support for state-machine hoisted local scopes. All variables are visible in the whole MoveNext method. 2020-03-07 19:56:57 +01:00
Siegfried Pammer 3f108cea37 #1482: Fix sequence points of LINQ select and where. 2020-03-07 19:53:44 +01:00
Siegfried Pammer 22799ca6b1 #1942: Make sure to group all types by filename in the generated PDB. 2020-03-05 12:03:36 +01:00
Siegfried Pammer 70b087bf8d #1942: WholeProjectDecompiler: Do not use filenames that collide with names of special devices. Note: this changes the PDB structure from multi-level folders per namespace to "dotted name" folders. 2020-03-05 11:11:12 +01:00
Siegfried Pammer 2efca22fae Add Debug Metadata Explorer 2020-01-26 21:34:05 +01:00
Siegfried Pammer ae08167521 PDBGen: LocalScopes must be sorted "first by Method in ascending order, then by StartOffset in ascending order, then by Length in descending order." 2020-01-26 21:34:05 +01:00
Siegfried Pammer e211b01595 Fix CA1507:UseNameofInPlaceOfString, adjust formatting of some older source files copied from NRefactory. 2019-11-04 20:40:21 +01:00
Siegfried Pammer 74f3b2a0dd Fix #1712: Invalid SequencePointsBlob when generating PDB: Filter duplicate IL range assignments. 2019-09-28 09:34:02 +02:00
Siegfried Pammer 46ba4fc66a Fix #1480: InvalidOperationException in PortablePdbWriter. 2019-04-11 11:34:25 +02:00
Daniel Grunwald d90c195b00 SHA256 instances are not thread-safe 2019-02-16 18:30:24 +01:00
Daniel Grunwald f1c8142ce2 PDB generator now can emit "method stepping information" for async functions. 2019-02-16 18:27:24 +01:00
Siegfried Pammer b4c376d195 Ignore document checksum and blob length in PdbGenerationTestRunner 2019-02-16 14:26:48 +01:00
Daniel Grunwald 763683748b Emit debug info for display class locals, so that the debugger can show the values of captured variables. 2019-02-16 12:48:19 +01:00
Siegfried Pammer 25c757b7cd Add first attempt at PdbGenerationTestRunner. 2019-02-16 08:27:53 +01:00
Siegfried Pammer 9c640d3042 Merge branch 'master' of https://github.com/icsharpcode/ILSpy into ppdb 2019-02-15 14:56:38 +01:00
Daniel Grunwald 66197818b9 Fix LocalScope.VariableList for empty scopes. 2019-02-15 14:02:50 +01:00
Siegfried Pammer fd70d25e95 Small fixes in ScopesGenerator. 2019-02-15 11:44:25 +01:00
Siegfried Pammer 1c4b02cb7c Merge branch 'master' of https://github.com/icsharpcode/ILSpy into ppdb 2019-02-13 18:06:29 +01:00
Siegfried Pammer 9e0c7ae9c8 Use Mono.Cecil instead of DiaSymReader to read classic PDB files. 2018-08-12 15:22:54 +02:00
Siegfried Pammer 6926651791 First draft of support for ImportScope and LocalScope tables. 2018-07-22 22:14:50 +02:00
Siegfried Pammer 58c3a17a26 #1024: Fix bug in sequence point blob mapping. 2018-07-20 09:52:44 +02:00
Siegfried Pammer d5b495329f #1024: Make PDB Support in ILSpy more robust. 2018-07-19 08:40:18 +02:00
Daniel Grunwald b396d203bd Merge IDecompilerTypeSystem with ICompilation. 2018-07-14 16:50:36 +02:00
Daniel Grunwald 3b46776c5e Rename IAssembly -> IModule.
While support for multi-module assemblies isn't fully working yet; it is clear at this point that we want
to treat each module in a multi-module assembly separately for the purposes of the type system.
2018-07-13 22:20:49 +02:00
Siegfried Pammer 8335615842 Add IDebugInfoProvider.Description property 2018-07-13 14:45:17 +02:00