Skip to content

Commit 33459f2

Browse files
authored
Merge pull request #6089 from poppastring/decompilation-update-limitation
More additions to "Known Limitations" section
2 parents 794fb3d + a1329d3 commit 33459f2

File tree

1 file changed

+20
-1
lines changed

1 file changed

+20
-1
lines changed

docs/debugger/decompilation.md

Lines changed: 20 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -75,9 +75,28 @@ When debugging code that was decompiled from an assembly that was compiled using
7575
- Breakpoints may not always bind to the matching sourcing location.
7676
- Stepping may not always step to the correct location.
7777
- Local variables may not have accurate names.
78+
- Some variables may not be available for evaluation.
7879

7980
More details can be found in the GitHub issue: [IChsarpCompiler.Decompiler integration into VS Debugger](https://github.com/icsharpcode/ILSpy/issues/1901).
8081

82+
### Decompilation reliability
83+
84+
A relatively small percentage of decompilation attempts may result in failure. This is due to a sequence point null-reference error in ILSpy. We have mitigated the failure by catching these issues and gracefully failing the decompilation attempt.
85+
86+
More details can be found in the GitHub issue: [IChsarpCompiler.Decompiler integration into VS Debugger](https://github.com/icsharpcode/ILSpy/issues/1901).
87+
88+
### Limitations with async code
89+
90+
The results from decompiling modules with async/await code patterns may be incomplete or fail entirely. The ILSpy implementation of async/await and yield state-machines is only partially implemented.
91+
92+
More details can be found in the GitHub issue: [PDB Generator Status](https://github.com/icsharpcode/ILSpy/issues/1422).
93+
94+
### Just My Code
95+
96+
The [Just My Code (JMC)](https://docs.microsoft.com/visualstudio/debugger/just-my-code) settings allows Visual Studio to step over system, framework, library, and other non-user calls. During a debugging session, the **Modules** window shows which code modules the debugger is treating as My Code (user code).
97+
98+
Decompilation of optimized or release modules produces non-user code. If the debugger breaks in your decompiled non-user code, for example, the **No Source** window appears. To disable Just My Code, navigate to **Tools** > **Options** (or **Debug** > **Options**) > **Debugging** > **General**, and then deselect **Enable Just My Code**.
99+
81100
### Extracted sources
82101

83102
Source code extracted from an assembly has the following limitations:
@@ -87,4 +106,4 @@ Source code extracted from an assembly has the following limitations:
87106
- The file name for each file contains a checksum hash of the file.
88107

89108
### Generated code is C# only
90-
Decompilation only generate source code files in C#. There is no option to generate files in any other language.
109+
Decompilation only generates source code files in C#. There is no option to generate files in any other language.

0 commit comments

Comments
 (0)