Skip to content
This repository has been archived by the owner on Jan 23, 2023. It is now read-only.
/ corefx Public archive

Commit

Permalink
Adding placeholder Span debugger proxy (dotnet/coreclr#14749)
Browse files Browse the repository at this point in the history
* Adding placeholder Span debugger proxy.

* Remove unnecessary unsafe keyword.

Signed-off-by: dotnet-bot-corefx-mirror <dotnet-bot@microsoft.com>
  • Loading branch information
ahsonkhan authored and dotnet-bot committed Jan 13, 2018
1 parent d05c0d4 commit fcbb264
Show file tree
Hide file tree
Showing 4 changed files with 31 additions and 0 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -441,6 +441,7 @@
<Compile Include="$(MSBuildThisFileDirectory)System\SerializableAttribute.cs" />
<Compile Include="$(MSBuildThisFileDirectory)System\Single.cs" />
<Compile Include="$(MSBuildThisFileDirectory)System\Span.cs" />
<Compile Include="$(MSBuildThisFileDirectory)System\SpanDebugView.cs" />
<Compile Include="$(MSBuildThisFileDirectory)System\Span.NonGeneric.cs" />
<Compile Include="$(MSBuildThisFileDirectory)System\String.Searching.cs" />
<Compile Include="$(MSBuildThisFileDirectory)System\StringSpanHelpers.cs" />
Expand Down
1 change: 1 addition & 0 deletions src/Common/src/CoreLib/System/ReadOnlySpan.cs
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ namespace System
/// ReadOnlySpan represents a contiguous region of arbitrary memory. Unlike arrays, it can point to either managed
/// or native memory, or to memory allocated on the stack. It is type- and memory-safe.
/// </summary>
[DebuggerTypeProxy(typeof(SpanDebugView<>))]
[DebuggerDisplay("{DebuggerDisplay,nq}")]
[NonVersionable]
public readonly ref struct ReadOnlySpan<T>
Expand Down
1 change: 1 addition & 0 deletions src/Common/src/CoreLib/System/Span.cs
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@ namespace System
/// Span represents a contiguous region of arbitrary memory. Unlike arrays, it can point to either managed
/// or native memory, or to memory allocated on the stack. It is type- and memory-safe.
/// </summary>
[DebuggerTypeProxy(typeof(SpanDebugView<>))]
[DebuggerDisplay("{DebuggerDisplay,nq}")]
[NonVersionable]
public readonly ref struct Span<T>
Expand Down
28 changes: 28 additions & 0 deletions src/Common/src/CoreLib/System/SpanDebugView.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the MIT license.
// See the LICENSE file in the project root for more information.

using System.Diagnostics;
using System.Reflection;
using System.Runtime.CompilerServices;

namespace System
{
internal sealed class SpanDebugView<T>
{
private readonly T[] _array;

public SpanDebugView(Span<T> span)
{
_array = span.ToArray();
}

public SpanDebugView(ReadOnlySpan<T> span)
{
_array = span.ToArray();
}

[DebuggerBrowsable(DebuggerBrowsableState.RootHidden)]
public T[] Items => _array;
}
}

0 comments on commit fcbb264

Please sign in to comment.