@ -120,6 +120,7 @@ namespace ICSharpCode.ILSpy.Metadata
@@ -120,6 +120,7 @@ namespace ICSharpCode.ILSpy.Metadata
DefaultNamespaces ,
EditAndContinueLocalSlotMap ,
EditAndContinueLambdaAndClosureMap ,
EncStateMachineStateMap ,
EmbeddedSource ,
SourceLink ,
MethodSteppingInformation ,
@ -154,6 +155,10 @@ namespace ICSharpCode.ILSpy.Metadata
@@ -154,6 +155,10 @@ namespace ICSharpCode.ILSpy.Metadata
{
return CustomDebugInformationKind . EditAndContinueLambdaAndClosureMap ;
}
if ( KnownGuids . EncStateMachineStateMap = = guid )
{
return CustomDebugInformationKind . EncStateMachineStateMap ;
}
if ( KnownGuids . EmbeddedSource = = guid )
{
return CustomDebugInformationKind . EmbeddedSource ;
@ -192,8 +197,7 @@ namespace ICSharpCode.ILSpy.Metadata
@@ -192,8 +197,7 @@ namespace ICSharpCode.ILSpy.Metadata
public object Offset = > offset = = null ? "n/a" : ( object ) offset ;
[StringFormat("X8")]
[LinkToTable]
[ColumnInfo("X8", Kind = ColumnKind.Token)]
public int Parent = > MetadataTokens . GetToken ( debugInfo . Parent ) ;
public void OnParentClick ( )
@ -201,17 +205,10 @@ namespace ICSharpCode.ILSpy.Metadata
@@ -201,17 +205,10 @@ namespace ICSharpCode.ILSpy.Metadata
MainWindow . Instance . JumpToReference ( new EntityReference ( module , debugInfo . Parent , protocol : "metadata" ) ) ;
}
public string ParentTooltip {
get {
ITextOutput output = new PlainTextOutput ( ) ;
var context = new MetadataGenericContext ( default ( TypeDefinitionHandle ) , module ) ;
debugInfo . Parent . WriteTo ( module , output , context ) ;
return output . ToString ( ) ;
}
}
string parentTooltip ;
public string ParentTooltip = > GenerateTooltip ( ref parentTooltip , module , debugInfo . Parent ) ;
string kindString ;
public string Kind {
get {
if ( kindString ! = null )
@ -226,57 +223,28 @@ namespace ICSharpCode.ILSpy.Metadata
@@ -226,57 +223,28 @@ namespace ICSharpCode.ILSpy.Metadata
{
guid = Guid . Empty ;
}
switch ( kind )
{
case CustomDebugInformationKind . None :
kindString = "" ;
break ;
case CustomDebugInformationKind . StateMachineHoistedLocalScopes :
kindString = $"{MetadataTokens.GetHeapOffset(debugInfo.Kind):X8} - State Machine Hoisted Local Scopes (C# / VB) [{guid}]" ;
break ;
case CustomDebugInformationKind . DynamicLocalVariables :
kindString = $"{MetadataTokens.GetHeapOffset(debugInfo.Kind):X8} - Dynamic Local Variables (C#) [{guid}]" ;
break ;
case CustomDebugInformationKind . DefaultNamespaces :
kindString = $"{MetadataTokens.GetHeapOffset(debugInfo.Kind):X8} - Default Namespaces (VB) [{guid}]" ;
break ;
case CustomDebugInformationKind . EditAndContinueLocalSlotMap :
kindString = $"{MetadataTokens.GetHeapOffset(debugInfo.Kind):X8} - Edit And Continue Local Slot Map (C# / VB) [{guid}]" ;
break ;
case CustomDebugInformationKind . EditAndContinueLambdaAndClosureMap :
kindString = $"{MetadataTokens.GetHeapOffset(debugInfo.Kind):X8} - Edit And Continue Lambda And Closure Map (C# / VB) [{guid}]" ;
break ;
case CustomDebugInformationKind . EmbeddedSource :
kindString = $"{MetadataTokens.GetHeapOffset(debugInfo.Kind):X8} - Embedded Source (C# / VB) [{guid}]" ;
break ;
case CustomDebugInformationKind . SourceLink :
kindString = $"{MetadataTokens.GetHeapOffset(debugInfo.Kind):X8} - Source Link (C# / VB) [{guid}]" ;
break ;
case CustomDebugInformationKind . MethodSteppingInformation :
kindString = $"{MetadataTokens.GetHeapOffset(debugInfo.Kind):X8} - Method Stepping Information (C# / VB) [{guid}]" ;
break ;
case CustomDebugInformationKind . CompilationOptions :
kindString = $"{MetadataTokens.GetHeapOffset(debugInfo.Kind):X8} - Compilation Options (C# / VB) [{ guid}]" ;
break ;
case CustomDebugInformationKind . CompilationMetadataReferences :
kindString = $"{MetadataTokens.GetHeapOffset(debugInfo.Kind):X8} - Compilation Metadata References (C# / VB) [{ guid}]" ;
break ;
case CustomDebugInformationKind . TupleElementNames :
kindString = $"{MetadataTokens.GetHeapOffset(debugInfo.Kind):X8} - Tuple Element Names (C#) [{ guid}]" ;
break ;
case CustomDebugInformationKind . TypeDefinitionDocuments :
kindString = $"{MetadataTokens.GetHeapOffset(debugInfo.Kind):X8} - Type Definition Documents (C# / VB) [{ guid}]" ;
break ;
default :
kindString = $"{MetadataTokens.GetHeapOffset(debugInfo.Kind):X8} - Unknown [{guid}]" ;
break ;
}
kindString = kind switch {
CustomDebugInformationKind . None = > "" ,
CustomDebugInformationKind . StateMachineHoistedLocalScopes = > $"{MetadataTokens.GetHeapOffset(debugInfo.Kind):X8} - State Machine Hoisted Local Scopes (C# / VB) [{guid}]" ,
CustomDebugInformationKind . DynamicLocalVariables = > $"{MetadataTokens.GetHeapOffset(debugInfo.Kind):X8} - Dynamic Local Variables (C#) [{guid}]" ,
CustomDebugInformationKind . DefaultNamespaces = > $"{MetadataTokens.GetHeapOffset(debugInfo.Kind):X8} - Default Namespaces (VB) [{guid}]" ,
CustomDebugInformationKind . EditAndContinueLocalSlotMap = > $"{MetadataTokens.GetHeapOffset(debugInfo.Kind):X8} - Edit And Continue Local Slot Map (C# / VB) [{guid}]" ,
CustomDebugInformationKind . EditAndContinueLambdaAndClosureMap = > $"{MetadataTokens.GetHeapOffset(debugInfo.Kind):X8} - Edit And Continue Lambda And Closure Map (C# / VB) [{guid}]" ,
CustomDebugInformationKind . EncStateMachineStateMap = > $"{MetadataTokens.GetHeapOffset(debugInfo.Kind):X8} - Edit And Continue State Machine State Map (C# / VB) [{guid}]" ,
CustomDebugInformationKind . EmbeddedSource = > $"{MetadataTokens.GetHeapOffset(debugInfo.Kind):X8} - Embedded Source (C# / VB) [{guid}]" ,
CustomDebugInformationKind . SourceLink = > $"{MetadataTokens.GetHeapOffset(debugInfo.Kind):X8} - Source Link (C# / VB) [{guid}]" ,
CustomDebugInformationKind . MethodSteppingInformation = > $"{MetadataTokens.GetHeapOffset(debugInfo.Kind):X8} - Method Stepping Information (C# / VB) [{guid}]" ,
CustomDebugInformationKind . CompilationOptions = > $"{MetadataTokens.GetHeapOffset(debugInfo.Kind):X8} - Compilation Options (C# / VB) [{guid}]" ,
CustomDebugInformationKind . CompilationMetadataReferences = > $"{MetadataTokens.GetHeapOffset(debugInfo.Kind):X8} - Compilation Metadata References (C# / VB) [{guid}]" ,
CustomDebugInformationKind . TupleElementNames = > $"{MetadataTokens.GetHeapOffset(debugInfo.Kind):X8} - Tuple Element Names (C#) [{guid}]" ,
CustomDebugInformationKind . TypeDefinitionDocuments = > $"{MetadataTokens.GetHeapOffset(debugInfo.Kind):X8} - Type Definition Documents (C# / VB) [{guid}]" ,
_ = > $"{MetadataTokens.GetHeapOffset(debugInfo.Kind):X8} - Unknown [{guid}]" ,
} ;
return kindString ;
}
}
[StringFormat("X" )]
[ColumnInfo("X8", Kind = ColumnKind.HeapOffset)]
public int Value = > MetadataTokens . GetHeapOffset ( debugInfo . Value ) ;
public string ValueTooltip {