Browse Source

Fix #1712: Invalid SequencePointsBlob when generating PDB: Filter duplicate IL range assignments.

pull/1728/head
Siegfried Pammer 6 years ago
parent
commit
74f3b2a0dd
  1. 2
      ICSharpCode.Decompiler/CSharp/SequencePointBuilder.cs
  2. 2
      ICSharpCode.Decompiler/DebugInfo/SequencePoint.cs

2
ICSharpCode.Decompiler/CSharp/SequencePointBuilder.cs

@ -300,7 +300,7 @@ namespace ICSharpCode.Decompiler.CSharp @@ -300,7 +300,7 @@ namespace ICSharpCode.Decompiler.CSharp
if (sequencePoint.Offset < pos) {
// overlapping sequence point?
// delete previous sequence points that are after sequencePoint.Offset
while (newList.Count > 0 && newList.Last().EndOffset > pos) {
while (newList.Count > 0 && newList.Last().EndOffset > sequencePoint.Offset) {
var last = newList.Last();
if (last.Offset >= sequencePoint.Offset) {
newList.RemoveAt(newList.Count - 1);

2
ICSharpCode.Decompiler/DebugInfo/SequencePoint.cs

@ -17,12 +17,14 @@ @@ -17,12 +17,14 @@
// DEALINGS IN THE SOFTWARE.
using System;
using System.Diagnostics;
namespace ICSharpCode.Decompiler.DebugInfo
{
/// <summary>
/// A sequence point read from a PDB file or produced by the decompiler.
/// </summary>
[DebuggerDisplay("SequencePoint IL_{Offset,h}-IL_{EndOffset,h}, {StartLine}:{StartColumn}-{EndLine}:{EndColumn}, IsHidden={IsHidden}")]
public struct SequencePoint
{
/// <summary>

Loading…
Cancel
Save