You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: docs/debugger/decompilation.md
+20-1Lines changed: 20 additions & 1 deletion
Original file line number
Diff line number
Diff line change
@@ -75,9 +75,28 @@ When debugging code that was decompiled from an assembly that was compiled using
75
75
- Breakpoints may not always bind to the matching sourcing location.
76
76
- Stepping may not always step to the correct location.
77
77
- Local variables may not have accurate names.
78
+
- Some variables may not be available for evaluation.
78
79
79
80
More details can be found in the GitHub issue: [IChsarpCompiler.Decompiler integration into VS Debugger](https://github.com/icsharpcode/ILSpy/issues/1901).
80
81
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
+
81
100
### Extracted sources
82
101
83
102
Source code extracted from an assembly has the following limitations:
@@ -87,4 +106,4 @@ Source code extracted from an assembly has the following limitations:
87
106
- The file name for each file contains a checksum hash of the file.
88
107
89
108
### 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