This commit is contained in:
niko
2026-06-04 11:42:34 +02:00
parent f39ba70a9f
commit e720b98cd1
7488 changed files with 2493818 additions and 0 deletions
@@ -0,0 +1,131 @@
using System;
namespace System.Diagnostics.CodeAnalysis
{
/// <summary>Suppresses reporting of a specific static analysis tool rule violation, allowing multiple suppressions on a single code artifact.</summary>
// Token: 0x0200014A RID: 330
[AttributeUsage(AttributeTargets.All, Inherited = false, AllowMultiple = true)]
[Conditional("CODE_ANALYSIS")]
public sealed class SuppressMessageAttribute : Attribute
{
/// <summary>Initializes a new instance of the <see cref="T:System.Diagnostics.CodeAnalysis.SuppressMessageAttribute" /> class, specifying the category of the static analysis tool and the identifier for an analysis rule. </summary>
/// <param name="category">The category for the attribute.</param>
/// <param name="checkId">The identifier of the analysis tool rule the attribute applies to.</param>
// Token: 0x060010CA RID: 4298 RVA: 0x00044E58 File Offset: 0x00043058
public SuppressMessageAttribute(string category, string checkId)
{
this.category = category;
this.checkId = checkId;
}
/// <summary>Gets the category identifying the classification of the attribute.</summary>
/// <returns>The category identifying the attribute.</returns>
// Token: 0x170002CA RID: 714
// (get) Token: 0x060010CB RID: 4299 RVA: 0x00044E70 File Offset: 0x00043070
public string Category
{
get
{
return this.category;
}
}
/// <summary>Gets the identifier of the static analysis tool rule to be suppressed.</summary>
/// <returns>The identifier of the static analysis tool rule to be suppressed.</returns>
// Token: 0x170002CB RID: 715
// (get) Token: 0x060010CC RID: 4300 RVA: 0x00044E78 File Offset: 0x00043078
public string CheckId
{
get
{
return this.checkId;
}
}
/// <summary>Gets or sets the justification for suppressing the code analysis message.</summary>
/// <returns>The justification for suppressing the message.</returns>
// Token: 0x170002CC RID: 716
// (get) Token: 0x060010CD RID: 4301 RVA: 0x00044E80 File Offset: 0x00043080
// (set) Token: 0x060010CE RID: 4302 RVA: 0x00044E88 File Offset: 0x00043088
public string Justification
{
get
{
return this.justification;
}
set
{
this.justification = value;
}
}
/// <summary>Gets or sets an optional argument expanding on exclusion criteria.</summary>
/// <returns>A string containing the expanded exclusion criteria.</returns>
// Token: 0x170002CD RID: 717
// (get) Token: 0x060010CF RID: 4303 RVA: 0x00044E94 File Offset: 0x00043094
// (set) Token: 0x060010D0 RID: 4304 RVA: 0x00044E9C File Offset: 0x0004309C
public string MessageId
{
get
{
return this.messageId;
}
set
{
this.messageId = value;
}
}
/// <summary>Gets or sets the scope of the code that is relevant for the attribute.</summary>
/// <returns>The scope of the code that is relevant for the attribute.</returns>
// Token: 0x170002CE RID: 718
// (get) Token: 0x060010D1 RID: 4305 RVA: 0x00044EA8 File Offset: 0x000430A8
// (set) Token: 0x060010D2 RID: 4306 RVA: 0x00044EB0 File Offset: 0x000430B0
public string Scope
{
get
{
return this.scope;
}
set
{
this.scope = value;
}
}
/// <summary>Gets or sets a fully qualified path that represents the target of the attribute.</summary>
/// <returns>A fully qualified path that represents the target of the attribute.</returns>
// Token: 0x170002CF RID: 719
// (get) Token: 0x060010D3 RID: 4307 RVA: 0x00044EBC File Offset: 0x000430BC
// (set) Token: 0x060010D4 RID: 4308 RVA: 0x00044EC4 File Offset: 0x000430C4
public string Target
{
get
{
return this.target;
}
set
{
this.target = value;
}
}
// Token: 0x04000419 RID: 1049
private string category;
// Token: 0x0400041A RID: 1050
private string checkId;
// Token: 0x0400041B RID: 1051
private string justification;
// Token: 0x0400041C RID: 1052
private string messageId;
// Token: 0x0400041D RID: 1053
private string scope;
// Token: 0x0400041E RID: 1054
private string target;
}
}
@@ -0,0 +1,38 @@
using System;
using System.Runtime.InteropServices;
namespace System.Diagnostics
{
/// <summary>Indicates to compilers that a method call or attribute should be ignored unless a specified conditional compilation symbol is defined.</summary>
/// <filterpriority>1</filterpriority>
// Token: 0x02000045 RID: 69
[ComVisible(true)]
[AttributeUsage(AttributeTargets.Class | AttributeTargets.Method, AllowMultiple = true)]
[Serializable]
public sealed class ConditionalAttribute : Attribute
{
/// <summary>Initializes a new instance of the <see cref="T:System.Diagnostics.ConditionalAttribute" /> class.</summary>
/// <param name="conditionString">A string that specifies the case-sensitive conditional compilation symbol that is associated with the attribute. </param>
// Token: 0x06000660 RID: 1632 RVA: 0x00014AF8 File Offset: 0x00012CF8
public ConditionalAttribute(string conditionString)
{
this.myCondition = conditionString;
}
/// <summary>Gets the conditional compilation symbol that is associated with the <see cref="T:System.Diagnostics.ConditionalAttribute" /> attribute.</summary>
/// <returns>A string that specifies the case-sensitive conditional compilation symbol that is associated with the <see cref="T:System.Diagnostics.ConditionalAttribute" /> attribute.</returns>
/// <filterpriority>2</filterpriority>
// Token: 0x170000B1 RID: 177
// (get) Token: 0x06000661 RID: 1633 RVA: 0x00014B08 File Offset: 0x00012D08
public string ConditionString
{
get
{
return this.myCondition;
}
}
// Token: 0x0400009A RID: 154
private string myCondition;
}
}
@@ -0,0 +1,112 @@
using System;
using System.Runtime.InteropServices;
namespace System.Diagnostics
{
/// <summary>Modifies code generation for runtime just-in-time (JIT) debugging. This class cannot be inherited.</summary>
/// <filterpriority>1</filterpriority>
// Token: 0x0200015A RID: 346
[ComVisible(true)]
[AttributeUsage(AttributeTargets.Assembly | AttributeTargets.Module)]
public sealed class DebuggableAttribute : Attribute
{
/// <summary>Initializes a new instance of the <see cref="T:System.Diagnostics.DebuggableAttribute" /> class, using the specified tracking and optimization options for the just-in-time (JIT) compiler.</summary>
/// <param name="isJITTrackingEnabled">true to enable debugging; otherwise, false. </param>
/// <param name="isJITOptimizerDisabled">true to disable the optimizer for execution; otherwise, false. </param>
// Token: 0x06001128 RID: 4392 RVA: 0x00044F6C File Offset: 0x0004316C
public DebuggableAttribute(bool isJITTrackingEnabled, bool isJITOptimizerDisabled)
{
this.JITTrackingEnabledFlag = isJITTrackingEnabled;
this.JITOptimizerDisabledFlag = isJITOptimizerDisabled;
if (isJITTrackingEnabled)
{
this.debuggingModes |= DebuggableAttribute.DebuggingModes.Default;
}
if (isJITOptimizerDisabled)
{
this.debuggingModes |= DebuggableAttribute.DebuggingModes.DisableOptimizations;
}
}
/// <summary>Initializes a new instance of the <see cref="T:System.Diagnostics.DebuggableAttribute" /> class, using the specified debugging modes for the just-in-time (JIT) compiler. </summary>
/// <param name="modes">A bitwise combination of the <see cref="T:System.Diagnostics.DebuggableAttribute.DebuggingModes" /> values specifying the debugging mode for the JIT compiler.</param>
// Token: 0x06001129 RID: 4393 RVA: 0x00044FBC File Offset: 0x000431BC
public DebuggableAttribute(DebuggableAttribute.DebuggingModes modes)
{
this.debuggingModes = modes;
this.JITTrackingEnabledFlag = (this.debuggingModes & DebuggableAttribute.DebuggingModes.Default) != DebuggableAttribute.DebuggingModes.None;
this.JITOptimizerDisabledFlag = (this.debuggingModes & DebuggableAttribute.DebuggingModes.DisableOptimizations) != DebuggableAttribute.DebuggingModes.None;
}
/// <summary>Gets the debugging modes for the attribute.</summary>
/// <returns>A bitwise combination of the <see cref="T:System.Diagnostics.DebuggableAttribute.DebuggingModes" /> values describing the debugging mode for the just-in-time (JIT) compiler. The default is <see cref="F:System.Diagnostics.DebuggableAttribute.DebuggingModes.Default" />. </returns>
/// <filterpriority>2</filterpriority>
// Token: 0x170002E8 RID: 744
// (get) Token: 0x0600112A RID: 4394 RVA: 0x00044FF8 File Offset: 0x000431F8
public DebuggableAttribute.DebuggingModes DebuggingFlags
{
get
{
return this.debuggingModes;
}
}
/// <summary>Gets a value that indicates whether the runtime will track information during code generation for the debugger.</summary>
/// <returns>true if the runtime will track information during code generation for the debugger; otherwise, false.</returns>
/// <filterpriority>2</filterpriority>
// Token: 0x170002E9 RID: 745
// (get) Token: 0x0600112B RID: 4395 RVA: 0x00045000 File Offset: 0x00043200
public bool IsJITTrackingEnabled
{
get
{
return this.JITTrackingEnabledFlag;
}
}
/// <summary>Gets a value that indicates whether the runtime optimizer is disabled.</summary>
/// <returns>true if the runtime optimizer is disabled; otherwise, false.</returns>
/// <filterpriority>2</filterpriority>
// Token: 0x170002EA RID: 746
// (get) Token: 0x0600112C RID: 4396 RVA: 0x00045008 File Offset: 0x00043208
public bool IsJITOptimizerDisabled
{
get
{
return this.JITOptimizerDisabledFlag;
}
}
// Token: 0x04000438 RID: 1080
private bool JITTrackingEnabledFlag;
// Token: 0x04000439 RID: 1081
private bool JITOptimizerDisabledFlag;
// Token: 0x0400043A RID: 1082
private DebuggableAttribute.DebuggingModes debuggingModes;
/// <summary>Specifies the debugging mode for the just-in-time (JIT) compiler.</summary>
// Token: 0x0200015B RID: 347
[ComVisible(true)]
[Flags]
public enum DebuggingModes
{
/// <summary>In the .NET Framework version 2.0, JIT tracking information is always generated, and this flag has the same effect as <see cref="F:System.Diagnostics.DebuggableAttribute.DebuggingModes.Default" /> with the exception of the <see cref="P:System.Diagnostics.DebuggableAttribute.IsJITTrackingEnabled" /> property being false, which has no meaning in version 2.0.</summary>
// Token: 0x0400043C RID: 1084
None = 0,
/// <summary>Instructs the just-in-time (JIT) compiler to use its default behavior, which includes enabling optimizations, disabling Edit and Continue support, and using symbol store sequence points if present. In the .NET Framework version 2.0, JIT tracking information, the Microsoft intermediate language (MSIL) offset to the native-code offset within a method, is always generated.</summary>
// Token: 0x0400043D RID: 1085
Default = 1,
/// <summary>Use the implicit MSIL sequence points, not the program database (PDB) sequence points. The symbolic information normally includes at least one Microsoft intermediate language (MSIL) offset for each source line. When the just-in-time (JIT) compiler is about to compile a method, it asks the profiling services for a list of MSIL offsets that should be preserved. These MSIL offsets are called sequence points.</summary>
// Token: 0x0400043E RID: 1086
IgnoreSymbolStoreSequencePoints = 2,
/// <summary>Enable edit and continue. Edit and continue enables you to make changes to your source code while your program is in break mode. The ability to edit and continue is compiler dependent. </summary>
// Token: 0x0400043F RID: 1087
EnableEditAndContinue = 4,
/// <summary>Disable optimizations performed by the compiler to make your output file smaller, faster, and more efficient. Optimizations result in code rearrangement in the output file, which can make debugging difficult. Typically optimization should be disabled while debugging. </summary>
// Token: 0x04000440 RID: 1088
DisableOptimizations = 256
}
}
}
+80
View File
@@ -0,0 +1,80 @@
using System;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
namespace System.Diagnostics
{
/// <summary>Enables communication with a debugger. This class cannot be inherited.</summary>
/// <filterpriority>1</filterpriority>
// Token: 0x0200015C RID: 348
[ComVisible(true)]
[MonoTODO("The Debugger class is not functional")]
public sealed class Debugger
{
/// <summary>Gets a value that indicates whether a debugger is attached to the process.</summary>
/// <returns>true if a debugger is attached; otherwise, false.</returns>
/// <filterpriority>1</filterpriority>
// Token: 0x170002EB RID: 747
// (get) Token: 0x0600112F RID: 4399 RVA: 0x00045024 File Offset: 0x00043224
public static bool IsAttached
{
get
{
return Debugger.IsAttached_internal();
}
}
// Token: 0x06001130 RID: 4400
[MethodImpl(MethodImplOptions.InternalCall)]
private static extern bool IsAttached_internal();
/// <summary>Signals a breakpoint to an attached debugger.</summary>
/// <exception cref="T:System.Security.SecurityException">The <see cref="T:System.Security.Permissions.UIPermission" /> is not set to break into the debugger. </exception>
/// <filterpriority>1</filterpriority>
/// <PermissionSet>
/// <IPermission class="System.Security.Permissions.UIPermission, mscorlib, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" version="1" Unrestricted="true" />
/// </PermissionSet>
// Token: 0x06001131 RID: 4401 RVA: 0x0004502C File Offset: 0x0004322C
public static void Break()
{
}
/// <summary>Checks to see if logging is enabled by an attached debugger.</summary>
/// <returns>true if a debugger is attached and logging is enabled; otherwise, false. The attached debugger is the registered managed debugger in the DbgManagedDebugger registry key. For more information on this key, see Enabling JIT-attach Debugging.</returns>
/// <filterpriority>1</filterpriority>
// Token: 0x06001132 RID: 4402 RVA: 0x00045030 File Offset: 0x00043230
public static bool IsLogging()
{
return false;
}
/// <summary>Launches and attaches a debugger to the process.</summary>
/// <returns>true if the startup is successful or if the debugger is already attached; otherwise, false.</returns>
/// <exception cref="T:System.Security.SecurityException">The <see cref="T:System.Security.Permissions.UIPermission" /> is not set to start the debugger. </exception>
/// <filterpriority>1</filterpriority>
/// <PermissionSet>
/// <IPermission class="System.Security.Permissions.UIPermission, mscorlib, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" version="1" Unrestricted="true" />
/// </PermissionSet>
// Token: 0x06001133 RID: 4403 RVA: 0x00045034 File Offset: 0x00043234
[MonoTODO("Not implemented")]
public static bool Launch()
{
throw new NotImplementedException();
}
/// <summary>Posts a message for the attached debugger.</summary>
/// <param name="level">A description of the importance of the message. </param>
/// <param name="category">The category of the message. </param>
/// <param name="message">The message to show. </param>
/// <filterpriority>1</filterpriority>
// Token: 0x06001134 RID: 4404 RVA: 0x0004503C File Offset: 0x0004323C
public static void Log(int level, string category, string message)
{
}
/// <summary>Represents the default category of message with a constant.</summary>
/// <filterpriority>1</filterpriority>
// Token: 0x04000441 RID: 1089
public static readonly string DefaultCategory = string.Empty;
}
}
@@ -0,0 +1,39 @@
using System;
using System.Runtime.InteropServices;
namespace System.Diagnostics
{
/// <summary>Determines if and how a member is displayed in the debugger variable windows. This class cannot be inherited.</summary>
/// <filterpriority>1</filterpriority>
// Token: 0x0200015D RID: 349
[ComVisible(true)]
[AttributeUsage(AttributeTargets.Property | AttributeTargets.Field)]
public sealed class DebuggerBrowsableAttribute : Attribute
{
/// <summary>Initializes a new instance of the <see cref="T:System.Diagnostics.DebuggerBrowsableAttribute" /> class. </summary>
/// <param name="state">One of the <see cref="T:System.Diagnostics.DebuggerBrowsableState" /> values that specifies how to display the member.</param>
/// <exception cref="T:System.ArgumentOutOfRangeException">
/// <paramref name="state" /> is not one of the <see cref="T:System.Diagnostics.DebuggerBrowsableState" /> values.</exception>
// Token: 0x06001135 RID: 4405 RVA: 0x00045040 File Offset: 0x00043240
public DebuggerBrowsableAttribute(DebuggerBrowsableState state)
{
this.state = state;
}
/// <summary>Gets the display state for the attribute.</summary>
/// <returns>One of the <see cref="T:System.Diagnostics.DebuggerBrowsableState" /> values.</returns>
/// <filterpriority>2</filterpriority>
// Token: 0x170002EC RID: 748
// (get) Token: 0x06001136 RID: 4406 RVA: 0x00045050 File Offset: 0x00043250
public DebuggerBrowsableState State
{
get
{
return this.state;
}
}
// Token: 0x04000442 RID: 1090
private DebuggerBrowsableState state;
}
}
@@ -0,0 +1,22 @@
using System;
using System.Runtime.InteropServices;
namespace System.Diagnostics
{
/// <summary>Provides display instructions for the debugger.</summary>
/// <filterpriority>2</filterpriority>
// Token: 0x0200015E RID: 350
[ComVisible(true)]
public enum DebuggerBrowsableState
{
/// <summary>Never show the element.</summary>
// Token: 0x04000444 RID: 1092
Never,
/// <summary>Show the element as collapsed.</summary>
// Token: 0x04000445 RID: 1093
Collapsed = 2,
/// <summary>Do not display the root element; display the child elements if the element is a collection or array of items.</summary>
// Token: 0x04000446 RID: 1094
RootHidden
}
}
@@ -0,0 +1,134 @@
using System;
using System.Runtime.InteropServices;
namespace System.Diagnostics
{
/// <summary>Determines how a class or field is displayed in the debugger variable windows.</summary>
/// <filterpriority>1</filterpriority>
// Token: 0x0200015F RID: 351
[AttributeUsage(AttributeTargets.Assembly | AttributeTargets.Class | AttributeTargets.Struct | AttributeTargets.Enum | AttributeTargets.Property | AttributeTargets.Field | AttributeTargets.Delegate, AllowMultiple = true)]
[ComVisible(true)]
public sealed class DebuggerDisplayAttribute : Attribute
{
/// <summary>Initializes a new instance of the <see cref="T:System.Diagnostics.DebuggerDisplayAttribute" /> class. </summary>
/// <param name="value">The string to be displayed in the value column for instances of the type; an empty string ("") causes the value column to be hidden.</param>
// Token: 0x06001137 RID: 4407 RVA: 0x00045058 File Offset: 0x00043258
public DebuggerDisplayAttribute(string value)
{
if (value == null)
{
value = string.Empty;
}
this.value = value;
this.type = string.Empty;
this.name = string.Empty;
}
/// <summary>Gets the string to display in the value column of the debugger variable windows.</summary>
/// <returns>The string to display in the value column of the debugger variable.</returns>
/// <filterpriority>2</filterpriority>
// Token: 0x170002ED RID: 749
// (get) Token: 0x06001138 RID: 4408 RVA: 0x00045098 File Offset: 0x00043298
public string Value
{
get
{
return this.value;
}
}
/// <summary>Gets or sets the type of the attribute's target.</summary>
/// <returns>A <see cref="T:System.Type" /> object that identifies the attribute's target type.</returns>
/// <exception cref="T:System.ArgumentNullException">
/// <see cref="P:System.Diagnostics.DebuggerDisplayAttribute.Target" /> is set to null.</exception>
/// <filterpriority>2</filterpriority>
// Token: 0x170002EE RID: 750
// (get) Token: 0x06001139 RID: 4409 RVA: 0x000450A0 File Offset: 0x000432A0
// (set) Token: 0x0600113A RID: 4410 RVA: 0x000450A8 File Offset: 0x000432A8
public Type Target
{
get
{
return this.target_type;
}
set
{
if (value == null)
{
throw new ArgumentNullException("value");
}
this.target_type = value;
this.target_type_name = this.target_type.AssemblyQualifiedName;
}
}
/// <summary>Gets or sets the type name of the attribute's target.</summary>
/// <returns>The name of the attribute's target type.</returns>
/// <filterpriority>2</filterpriority>
// Token: 0x170002EF RID: 751
// (get) Token: 0x0600113B RID: 4411 RVA: 0x000450D4 File Offset: 0x000432D4
// (set) Token: 0x0600113C RID: 4412 RVA: 0x000450DC File Offset: 0x000432DC
public string TargetTypeName
{
get
{
return this.target_type_name;
}
set
{
this.target_type_name = value;
}
}
/// <summary>Gets or sets the string to display in the type column of the debugger variable windows.</summary>
/// <returns>The string to display in the type column of the debugger variable windows.</returns>
/// <filterpriority>2</filterpriority>
// Token: 0x170002F0 RID: 752
// (get) Token: 0x0600113D RID: 4413 RVA: 0x000450E8 File Offset: 0x000432E8
// (set) Token: 0x0600113E RID: 4414 RVA: 0x000450F0 File Offset: 0x000432F0
public string Type
{
get
{
return this.type;
}
set
{
this.type = value;
}
}
/// <summary>Gets or sets the name to display in the debugger variable windows.</summary>
/// <returns>The name to display in the debugger variable windows.</returns>
/// <filterpriority>2</filterpriority>
// Token: 0x170002F1 RID: 753
// (get) Token: 0x0600113F RID: 4415 RVA: 0x000450FC File Offset: 0x000432FC
// (set) Token: 0x06001140 RID: 4416 RVA: 0x00045104 File Offset: 0x00043304
public string Name
{
get
{
return this.name;
}
set
{
this.name = value;
}
}
// Token: 0x04000447 RID: 1095
private string value;
// Token: 0x04000448 RID: 1096
private string type;
// Token: 0x04000449 RID: 1097
private string name;
// Token: 0x0400044A RID: 1098
private string target_type_name;
// Token: 0x0400044B RID: 1099
private Type target_type;
}
}
@@ -0,0 +1,15 @@
using System;
using System.Runtime.InteropServices;
namespace System.Diagnostics
{
/// <summary>Hides the code from the debugger. This class cannot be inherited.</summary>
/// <filterpriority>1</filterpriority>
// Token: 0x02000054 RID: 84
[AttributeUsage(AttributeTargets.Constructor | AttributeTargets.Method | AttributeTargets.Property, Inherited = false)]
[ComVisible(true)]
[Serializable]
public sealed class DebuggerHiddenAttribute : Attribute
{
}
}
@@ -0,0 +1,15 @@
using System;
using System.Runtime.InteropServices;
namespace System.Diagnostics
{
/// <summary>Identifies a type or member that is not part of the user code for an application.</summary>
/// <filterpriority>1</filterpriority>
// Token: 0x02000160 RID: 352
[AttributeUsage(AttributeTargets.Class | AttributeTargets.Struct | AttributeTargets.Constructor | AttributeTargets.Method | AttributeTargets.Property, Inherited = false)]
[ComVisible(true)]
[Serializable]
public sealed class DebuggerNonUserCodeAttribute : Attribute
{
}
}
@@ -0,0 +1,15 @@
using System;
using System.Runtime.InteropServices;
namespace System.Diagnostics
{
/// <summary>Instructs the debugger to step through the code instead of stepping into the code. This class cannot be inherited.</summary>
/// <filterpriority>1</filterpriority>
// Token: 0x02000161 RID: 353
[AttributeUsage(AttributeTargets.Class | AttributeTargets.Struct | AttributeTargets.Constructor | AttributeTargets.Method, Inherited = false)]
[ComVisible(true)]
[Serializable]
public sealed class DebuggerStepThroughAttribute : Attribute
{
}
}
@@ -0,0 +1,14 @@
using System;
using System.Runtime.InteropServices;
namespace System.Diagnostics
{
/// <summary>Indicates that the code following the attribute is to be executed in run mode, not step mode. This class cannot be inherited.</summary>
// Token: 0x02000162 RID: 354
[ComVisible(true)]
[AttributeUsage(AttributeTargets.Constructor | AttributeTargets.Method, Inherited = false)]
[Serializable]
public sealed class DebuggerStepperBoundaryAttribute : Attribute
{
}
}
@@ -0,0 +1,92 @@
using System;
using System.Runtime.InteropServices;
namespace System.Diagnostics
{
/// <summary>Specifies the display proxy for a type.</summary>
/// <filterpriority>1</filterpriority>
// Token: 0x02000163 RID: 355
[ComVisible(true)]
[AttributeUsage(AttributeTargets.Assembly | AttributeTargets.Class | AttributeTargets.Struct, AllowMultiple = true)]
public sealed class DebuggerTypeProxyAttribute : Attribute
{
/// <summary>Initializes a new instance of the <see cref="T:System.Diagnostics.DebuggerTypeProxyAttribute" /> class using the type name of the proxy. </summary>
/// <param name="typeName">The type name of the proxy type.</param>
// Token: 0x06001144 RID: 4420 RVA: 0x00045128 File Offset: 0x00043328
public DebuggerTypeProxyAttribute(string typeName)
{
this.proxy_type_name = typeName;
}
/// <summary>Initializes a new instance of the <see cref="T:System.Diagnostics.DebuggerTypeProxyAttribute" /> class using the type of the proxy. </summary>
/// <param name="type">A <see cref="T:System.Type" /> object that represents the proxy type.</param>
/// <exception cref="T:System.ArgumentNullException">
/// <paramref name="type" /> is null.</exception>
// Token: 0x06001145 RID: 4421 RVA: 0x00045138 File Offset: 0x00043338
public DebuggerTypeProxyAttribute(Type type)
{
this.proxy_type_name = type.Name;
}
/// <summary>Gets the type name of the proxy type. </summary>
/// <returns>The type name of the proxy type.</returns>
/// <filterpriority>2</filterpriority>
// Token: 0x170002F2 RID: 754
// (get) Token: 0x06001146 RID: 4422 RVA: 0x0004514C File Offset: 0x0004334C
public string ProxyTypeName
{
get
{
return this.proxy_type_name;
}
}
/// <summary>Gets or sets the target type for the attribute.</summary>
/// <returns>A <see cref="T:System.Type" /> object identifying the target type for the attribute.</returns>
/// <exception cref="T:System.ArgumentNullException">
/// <see cref="P:System.Diagnostics.DebuggerTypeProxyAttribute.Target" /> is set to null.</exception>
/// <filterpriority>2</filterpriority>
// Token: 0x170002F3 RID: 755
// (get) Token: 0x06001147 RID: 4423 RVA: 0x00045154 File Offset: 0x00043354
// (set) Token: 0x06001148 RID: 4424 RVA: 0x0004515C File Offset: 0x0004335C
public Type Target
{
get
{
return this.target_type;
}
set
{
this.target_type = value;
this.target_type_name = this.target_type.Name;
}
}
/// <summary>Gets or sets the name of the target type.</summary>
/// <returns>The name of the target type.</returns>
/// <filterpriority>2</filterpriority>
// Token: 0x170002F4 RID: 756
// (get) Token: 0x06001149 RID: 4425 RVA: 0x00045178 File Offset: 0x00043378
// (set) Token: 0x0600114A RID: 4426 RVA: 0x00045180 File Offset: 0x00043380
public string TargetTypeName
{
get
{
return this.target_type_name;
}
set
{
this.target_type_name = value;
}
}
// Token: 0x0400044C RID: 1100
private string proxy_type_name;
// Token: 0x0400044D RID: 1101
private string target_type_name;
// Token: 0x0400044E RID: 1102
private Type target_type;
}
}
@@ -0,0 +1,193 @@
using System;
using System.Runtime.InteropServices;
namespace System.Diagnostics
{
/// <summary>Specifies that the type has a visualizer. This class cannot be inherited. </summary>
/// <filterpriority>1</filterpriority>
// Token: 0x02000164 RID: 356
[AttributeUsage(AttributeTargets.Assembly | AttributeTargets.Class | AttributeTargets.Struct, AllowMultiple = true)]
[ComVisible(true)]
public sealed class DebuggerVisualizerAttribute : Attribute
{
/// <summary>Initializes a new instance of the <see cref="T:System.Diagnostics.DebuggerVisualizerAttribute" /> class, specifying the type name of the visualizer.</summary>
/// <param name="visualizerTypeName">The fully qualified type name of the visualizer.</param>
// Token: 0x0600114B RID: 4427 RVA: 0x0004518C File Offset: 0x0004338C
public DebuggerVisualizerAttribute(string visualizerTypeName)
{
this.visualizerName = visualizerTypeName;
}
/// <summary>Initializes a new instance of the <see cref="T:System.Diagnostics.DebuggerVisualizerAttribute" /> class, specifying the type of the visualizer.</summary>
/// <param name="visualizer">The type of the visualizer.</param>
/// <exception cref="T:System.ArgumentNullException">v<paramref name="isualizer" /> is null.</exception>
// Token: 0x0600114C RID: 4428 RVA: 0x0004519C File Offset: 0x0004339C
public DebuggerVisualizerAttribute(Type visualizer)
{
if (visualizer == null)
{
throw new ArgumentNullException("visualizer");
}
this.visualizerName = visualizer.AssemblyQualifiedName;
}
/// <summary>Initializes a new instance of the <see cref="T:System.Diagnostics.DebuggerVisualizerAttribute" /> class, specifying the type name of the visualizer and the type name of the visualizer object source.</summary>
/// <param name="visualizerTypeName">The fully qualified type name of the visualizer.</param>
/// <param name="visualizerObjectSourceTypeName">The fully qualified type name of the visualizer object source.</param>
// Token: 0x0600114D RID: 4429 RVA: 0x000451C4 File Offset: 0x000433C4
public DebuggerVisualizerAttribute(string visualizerTypeName, string visualizerObjectSourceTypeName)
{
this.visualizerName = visualizerTypeName;
this.visualizerSourceName = visualizerObjectSourceTypeName;
}
/// <summary>Initializes a new instance of the <see cref="T:System.Diagnostics.DebuggerVisualizerAttribute" /> class, specifying the type name of the visualizer and the type of the visualizer object source.</summary>
/// <param name="visualizerTypeName">The fully qualified type name of the visualizer.</param>
/// <param name="visualizerObjectSource">The type of the visualizer object source.</param>
/// <exception cref="T:System.ArgumentNullException">
/// <paramref name="visualizerObjectSource" /> is null.</exception>
// Token: 0x0600114E RID: 4430 RVA: 0x000451DC File Offset: 0x000433DC
public DebuggerVisualizerAttribute(string visualizerTypeName, Type visualizerObjectSource)
{
if (visualizerObjectSource == null)
{
throw new ArgumentNullException("visualizerObjectSource");
}
this.visualizerName = visualizerTypeName;
this.visualizerSourceName = visualizerObjectSource.AssemblyQualifiedName;
}
/// <summary>Initializes a new instance of the <see cref="T:System.Diagnostics.DebuggerVisualizerAttribute" /> class, specifying the type of the visualizer and the type name of the visualizer object source.</summary>
/// <param name="visualizer">The type of the visualizer.</param>
/// <param name="visualizerObjectSourceTypeName">The fully qualified type name of the visualizer object source.</param>
/// <exception cref="T:System.ArgumentNullException">v<paramref name="isualizer" /> is null.</exception>
// Token: 0x0600114F RID: 4431 RVA: 0x00045214 File Offset: 0x00043414
public DebuggerVisualizerAttribute(Type visualizer, string visualizerObjectSourceTypeName)
{
if (visualizer == null)
{
throw new ArgumentNullException("visualizer");
}
this.visualizerName = visualizer.AssemblyQualifiedName;
this.visualizerSourceName = visualizerObjectSourceTypeName;
}
/// <summary>Initializes a new instance of the <see cref="T:System.Diagnostics.DebuggerVisualizerAttribute" /> class, specifying the type of the visualizer and the type of the visualizer object source.</summary>
/// <param name="visualizer">The type of the visualizer.</param>
/// <param name="visualizerObjectSource">The type of the visualizer object source.</param>
/// <exception cref="T:System.ArgumentNullException">v<paramref name="isualizer" /> is null.</exception>
/// <exception cref="T:System.ArgumentNullException">
/// <paramref name="visualizerObjectSource" /> is null.</exception>
// Token: 0x06001150 RID: 4432 RVA: 0x0004524C File Offset: 0x0004344C
public DebuggerVisualizerAttribute(Type visualizer, Type visualizerObjectSource)
{
if (visualizer == null)
{
throw new ArgumentNullException("visualizer");
}
if (visualizerObjectSource == null)
{
throw new ArgumentNullException("visualizerObjectSource");
}
this.visualizerName = visualizer.AssemblyQualifiedName;
this.visualizerSourceName = visualizerObjectSource.AssemblyQualifiedName;
}
/// <summary>Gets or sets the description of the visualizer.</summary>
/// <returns>The description of the visualizer.</returns>
/// <filterpriority>2</filterpriority>
// Token: 0x170002F5 RID: 757
// (get) Token: 0x06001151 RID: 4433 RVA: 0x0004529C File Offset: 0x0004349C
// (set) Token: 0x06001152 RID: 4434 RVA: 0x000452A4 File Offset: 0x000434A4
public string Description
{
get
{
return this.description;
}
set
{
this.description = value;
}
}
/// <summary>Gets or sets the target type when the attribute is applied at the assembly level.</summary>
/// <returns>The type that is the target of the visualizer.</returns>
/// <exception cref="T:System.ArgumentNullException">The value cannot be set because it is null.</exception>
/// <filterpriority>2</filterpriority>
// Token: 0x170002F6 RID: 758
// (get) Token: 0x06001153 RID: 4435 RVA: 0x000452B0 File Offset: 0x000434B0
// (set) Token: 0x06001154 RID: 4436 RVA: 0x000452B8 File Offset: 0x000434B8
public Type Target
{
get
{
return this.target;
}
set
{
this.target = value;
this.targetTypeName = this.target.AssemblyQualifiedName;
}
}
/// <summary>Gets or sets the fully qualified type name when the attribute is applied at the assembly level.</summary>
/// <returns>The fully qualified type name of the target type.</returns>
/// <filterpriority>2</filterpriority>
// Token: 0x170002F7 RID: 759
// (get) Token: 0x06001155 RID: 4437 RVA: 0x000452D4 File Offset: 0x000434D4
// (set) Token: 0x06001156 RID: 4438 RVA: 0x000452DC File Offset: 0x000434DC
public string TargetTypeName
{
get
{
return this.targetTypeName;
}
set
{
this.targetTypeName = value;
}
}
/// <summary>Gets the fully qualified type name of the visualizer object source.</summary>
/// <returns>The fully qualified type name of the visualizer object source.</returns>
/// <filterpriority>2</filterpriority>
// Token: 0x170002F8 RID: 760
// (get) Token: 0x06001157 RID: 4439 RVA: 0x000452E8 File Offset: 0x000434E8
public string VisualizerObjectSourceTypeName
{
get
{
return this.visualizerSourceName;
}
}
/// <summary>Gets the fully qualified type name of the visualizer.</summary>
/// <returns>The fully qualified visualizer type name.</returns>
/// <filterpriority>2</filterpriority>
// Token: 0x170002F9 RID: 761
// (get) Token: 0x06001158 RID: 4440 RVA: 0x000452F0 File Offset: 0x000434F0
public string VisualizerTypeName
{
get
{
return this.visualizerName;
}
}
// Token: 0x0400044F RID: 1103
private string description;
// Token: 0x04000450 RID: 1104
private string visualizerSourceName;
// Token: 0x04000451 RID: 1105
private string visualizerName;
// Token: 0x04000452 RID: 1106
private string targetTypeName;
// Token: 0x04000453 RID: 1107
private Type target;
}
}
+220
View File
@@ -0,0 +1,220 @@
using System;
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
using System.Security;
using System.Text;
namespace System.Diagnostics
{
/// <summary>Provides information about a <see cref="T:System.Diagnostics.StackFrame" />, which represents a function call on the call stack for the current thread.</summary>
/// <filterpriority>2</filterpriority>
// Token: 0x02000165 RID: 357
[ComVisible(true)]
[MonoTODO("Serialized objects are not compatible with MS.NET")]
[Serializable]
public class StackFrame
{
/// <summary>Initializes a new instance of the <see cref="T:System.Diagnostics.StackFrame" /> class.</summary>
// Token: 0x06001159 RID: 4441 RVA: 0x000452F8 File Offset: 0x000434F8
public StackFrame()
{
bool flag = StackFrame.get_frame_info(2, false, out this.methodBase, out this.ilOffset, out this.nativeOffset, out this.fileName, out this.lineNumber, out this.columnNumber);
}
/// <summary>Initializes a new instance of the <see cref="T:System.Diagnostics.StackFrame" /> class, optionally capturing source information.</summary>
/// <param name="fNeedFileInfo">true to capture the file name, line number, and column number of the stack frame; otherwise, false. </param>
// Token: 0x0600115A RID: 4442 RVA: 0x00045348 File Offset: 0x00043548
public StackFrame(bool fNeedFileInfo)
{
bool flag = StackFrame.get_frame_info(2, fNeedFileInfo, out this.methodBase, out this.ilOffset, out this.nativeOffset, out this.fileName, out this.lineNumber, out this.columnNumber);
}
/// <summary>Initializes a new instance of the <see cref="T:System.Diagnostics.StackFrame" /> class that corresponds to a frame above the current stack frame.</summary>
/// <param name="skipFrames">The number of frames up the stack to skip. </param>
// Token: 0x0600115B RID: 4443 RVA: 0x00045398 File Offset: 0x00043598
public StackFrame(int skipFrames)
{
bool flag = StackFrame.get_frame_info(skipFrames + 2, false, out this.methodBase, out this.ilOffset, out this.nativeOffset, out this.fileName, out this.lineNumber, out this.columnNumber);
}
/// <summary>Initializes a new instance of the <see cref="T:System.Diagnostics.StackFrame" /> class that corresponds to a frame above the current stack frame, optionally capturing source information.</summary>
/// <param name="skipFrames">The number of frames up the stack to skip. </param>
/// <param name="fNeedFileInfo">true to capture the file name, line number, and column number of the stack frame; otherwise, false. </param>
// Token: 0x0600115C RID: 4444 RVA: 0x000453E8 File Offset: 0x000435E8
public StackFrame(int skipFrames, bool fNeedFileInfo)
{
bool flag = StackFrame.get_frame_info(skipFrames + 2, fNeedFileInfo, out this.methodBase, out this.ilOffset, out this.nativeOffset, out this.fileName, out this.lineNumber, out this.columnNumber);
}
/// <summary>Initializes a new instance of the <see cref="T:System.Diagnostics.StackFrame" /> class that contains only the given file name and line number.</summary>
/// <param name="fileName">The file name. </param>
/// <param name="lineNumber">The line number in the specified file. </param>
// Token: 0x0600115D RID: 4445 RVA: 0x00045438 File Offset: 0x00043638
public StackFrame(string fileName, int lineNumber)
{
bool flag = StackFrame.get_frame_info(2, false, out this.methodBase, out this.ilOffset, out this.nativeOffset, out fileName, out lineNumber, out this.columnNumber);
this.fileName = fileName;
this.lineNumber = lineNumber;
this.columnNumber = 0;
}
/// <summary>Initializes a new instance of the <see cref="T:System.Diagnostics.StackFrame" /> class that contains only the given file name, line number, and column number.</summary>
/// <param name="fileName">The file name. </param>
/// <param name="lineNumber">The line number in the specified file. </param>
/// <param name="colNumber">The column number in the specified file. </param>
// Token: 0x0600115E RID: 4446 RVA: 0x00045494 File Offset: 0x00043694
public StackFrame(string fileName, int lineNumber, int colNumber)
{
bool flag = StackFrame.get_frame_info(2, false, out this.methodBase, out this.ilOffset, out this.nativeOffset, out fileName, out lineNumber, out this.columnNumber);
this.fileName = fileName;
this.lineNumber = lineNumber;
this.columnNumber = colNumber;
}
// Token: 0x0600115F RID: 4447
[MethodImpl(MethodImplOptions.InternalCall)]
private static extern bool get_frame_info(int skip, bool needFileInfo, out MethodBase method, out int iloffset, out int native_offset, out string file, out int line, out int column);
/// <summary>Gets the line number in the file that contains the code that is executing. This information is typically extracted from the debugging symbols for the executable.</summary>
/// <returns>The file line number.-or- Zero if the file line number cannot be determined.</returns>
/// <filterpriority>2</filterpriority>
// Token: 0x06001160 RID: 4448 RVA: 0x000454F0 File Offset: 0x000436F0
public virtual int GetFileLineNumber()
{
return this.lineNumber;
}
/// <summary>Gets the column number in the file that contains the code that is executing. This information is typically extracted from the debugging symbols for the executable.</summary>
/// <returns>The file column number.-or- Zero if the file column number cannot be determined.</returns>
/// <filterpriority>2</filterpriority>
// Token: 0x06001161 RID: 4449 RVA: 0x000454F8 File Offset: 0x000436F8
public virtual int GetFileColumnNumber()
{
return this.columnNumber;
}
/// <summary>Gets the file name that contains the code that is executing. This information is typically extracted from the debugging symbols for the executable.</summary>
/// <returns>The file name.-or- null if the file name cannot be determined.</returns>
/// <filterpriority>2</filterpriority>
/// <PermissionSet>
/// <IPermission class="System.Security.Permissions.FileIOPermission, mscorlib, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" version="1" PathDiscovery="*AllFiles*" />
/// </PermissionSet>
// Token: 0x06001162 RID: 4450 RVA: 0x00045500 File Offset: 0x00043700
public virtual string GetFileName()
{
return this.fileName;
}
// Token: 0x06001163 RID: 4451 RVA: 0x00045508 File Offset: 0x00043708
internal string GetSecureFileName()
{
string text = "<filename unknown>";
if (this.fileName == null)
{
return text;
}
try
{
text = this.GetFileName();
}
catch (SecurityException)
{
}
return text;
}
/// <summary>Gets the offset from the start of the Microsoft intermediate language (MSIL) code for the method that is executing. This offset might be an approximation depending on whether or not the just-in-time (JIT) compiler is generating debugging code. The generation of this debugging information is controlled by the <see cref="T:System.Diagnostics.DebuggableAttribute" />.</summary>
/// <returns>The offset from the start of the MSIL code for the method that is executing.</returns>
/// <filterpriority>2</filterpriority>
// Token: 0x06001164 RID: 4452 RVA: 0x00045558 File Offset: 0x00043758
public virtual int GetILOffset()
{
return this.ilOffset;
}
/// <summary>Gets the method in which the frame is executing.</summary>
/// <returns>The method in which the frame is executing.</returns>
/// <filterpriority>2</filterpriority>
// Token: 0x06001165 RID: 4453 RVA: 0x00045560 File Offset: 0x00043760
public virtual MethodBase GetMethod()
{
return this.methodBase;
}
/// <summary>Gets the offset from the start of the native just-in-time (JIT)-compiled code for the method that is being executed. The generation of this debugging information is controlled by the <see cref="T:System.Diagnostics.DebuggableAttribute" /> class.</summary>
/// <returns>The offset from the start of the JIT-compiled code for the method that is being executed.</returns>
/// <filterpriority>2</filterpriority>
// Token: 0x06001166 RID: 4454 RVA: 0x00045568 File Offset: 0x00043768
public virtual int GetNativeOffset()
{
return this.nativeOffset;
}
// Token: 0x06001167 RID: 4455 RVA: 0x00045570 File Offset: 0x00043770
internal string GetInternalMethodName()
{
return this.internalMethodName;
}
/// <summary>Builds a readable representation of the stack trace.</summary>
/// <returns>A readable representation of the stack trace.</returns>
/// <filterpriority>2</filterpriority>
/// <PermissionSet>
/// <IPermission class="System.Security.Permissions.FileIOPermission, mscorlib, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" version="1" PathDiscovery="*AllFiles*" />
/// </PermissionSet>
// Token: 0x06001168 RID: 4456 RVA: 0x00045578 File Offset: 0x00043778
public override string ToString()
{
StringBuilder stringBuilder = new StringBuilder();
if (this.methodBase == null)
{
stringBuilder.Append(Locale.GetText("<unknown method>"));
}
else
{
stringBuilder.Append(this.methodBase.Name);
}
stringBuilder.Append(Locale.GetText(" at "));
if (this.ilOffset == -1)
{
stringBuilder.Append(Locale.GetText("<unknown offset>"));
}
else
{
stringBuilder.Append(Locale.GetText("offset "));
stringBuilder.Append(this.ilOffset);
}
stringBuilder.Append(Locale.GetText(" in file:line:column "));
stringBuilder.Append(this.GetSecureFileName());
stringBuilder.AppendFormat(":{0}:{1}", this.lineNumber, this.columnNumber);
return stringBuilder.ToString();
}
/// <summary>Defines the value that is returned from the <see cref="M:System.Diagnostics.StackFrame.GetNativeOffset" /> or <see cref="M:System.Diagnostics.StackFrame.GetILOffset" /> method when the native or Microsoft intermediate language (MSIL) offset is unknown. This field is constant.</summary>
/// <filterpriority>1</filterpriority>
// Token: 0x04000454 RID: 1108
public const int OFFSET_UNKNOWN = -1;
// Token: 0x04000455 RID: 1109
private int ilOffset = -1;
// Token: 0x04000456 RID: 1110
private int nativeOffset = -1;
// Token: 0x04000457 RID: 1111
private MethodBase methodBase;
// Token: 0x04000458 RID: 1112
private string fileName;
// Token: 0x04000459 RID: 1113
private int lineNumber;
// Token: 0x0400045A RID: 1114
private int columnNumber;
// Token: 0x0400045B RID: 1115
private string internalMethodName;
}
}
+292
View File
@@ -0,0 +1,292 @@
using System;
using System.Collections;
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
using System.Text;
using System.Threading;
namespace System.Diagnostics
{
/// <summary>Represents a stack trace, which is an ordered collection of one or more stack frames.</summary>
/// <filterpriority>2</filterpriority>
// Token: 0x02000166 RID: 358
[MonoTODO("Serialized objects are not compatible with .NET")]
[ComVisible(true)]
[Serializable]
public class StackTrace
{
/// <summary>Initializes a new instance of the <see cref="T:System.Diagnostics.StackTrace" /> class from the caller's frame.</summary>
// Token: 0x06001169 RID: 4457 RVA: 0x00045658 File Offset: 0x00043858
public StackTrace()
{
this.init_frames(0, false);
}
/// <summary>Initializes a new instance of the <see cref="T:System.Diagnostics.StackTrace" /> class from the caller's frame, optionally capturing source information.</summary>
/// <param name="fNeedFileInfo">true to capture the file name, line number, and column number; otherwise, false. </param>
// Token: 0x0600116A RID: 4458 RVA: 0x00045668 File Offset: 0x00043868
public StackTrace(bool fNeedFileInfo)
{
this.init_frames(0, fNeedFileInfo);
}
/// <summary>Initializes a new instance of the <see cref="T:System.Diagnostics.StackTrace" /> class from the caller's frame, skipping the specified number of frames.</summary>
/// <param name="skipFrames">The number of frames up the stack from which to start the trace. </param>
/// <exception cref="T:System.ArgumentOutOfRangeException">The <paramref name="skipFrames" /> parameter is negative. </exception>
// Token: 0x0600116B RID: 4459 RVA: 0x00045678 File Offset: 0x00043878
public StackTrace(int skipFrames)
{
this.init_frames(skipFrames, false);
}
/// <summary>Initializes a new instance of the <see cref="T:System.Diagnostics.StackTrace" /> class from the caller's frame, skipping the specified number of frames and optionally capturing source information.</summary>
/// <param name="skipFrames">The number of frames up the stack from which to start the trace. </param>
/// <param name="fNeedFileInfo">true to capture the file name, line number, and column number; otherwise, false. </param>
/// <exception cref="T:System.ArgumentOutOfRangeException">The <paramref name="skipFrames" /> parameter is negative. </exception>
// Token: 0x0600116C RID: 4460 RVA: 0x00045688 File Offset: 0x00043888
public StackTrace(int skipFrames, bool fNeedFileInfo)
{
this.init_frames(skipFrames, fNeedFileInfo);
}
/// <summary>Initializes a new instance of the <see cref="T:System.Diagnostics.StackTrace" /> class using the provided exception object.</summary>
/// <param name="e">The exception object from which to construct the stack trace. </param>
/// <exception cref="T:System.ArgumentNullException">The parameter <paramref name="e" /> is null. </exception>
// Token: 0x0600116D RID: 4461 RVA: 0x00045698 File Offset: 0x00043898
public StackTrace(Exception e)
: this(e, 0, false)
{
}
/// <summary>Initializes a new instance of the <see cref="T:System.Diagnostics.StackTrace" /> class, using the provided exception object and optionally capturing source information.</summary>
/// <param name="e">The exception object from which to construct the stack trace. </param>
/// <param name="fNeedFileInfo">true to capture the file name, line number, and column number; otherwise, false. </param>
/// <exception cref="T:System.ArgumentNullException">The parameter <paramref name="e" /> is null. </exception>
// Token: 0x0600116E RID: 4462 RVA: 0x000456A4 File Offset: 0x000438A4
public StackTrace(Exception e, bool fNeedFileInfo)
: this(e, 0, fNeedFileInfo)
{
}
/// <summary>Initializes a new instance of the <see cref="T:System.Diagnostics.StackTrace" /> class using the provided exception object and skipping the specified number of frames.</summary>
/// <param name="e">The exception object from which to construct the stack trace. </param>
/// <param name="skipFrames">The number of frames up the stack from which to start the trace. </param>
/// <exception cref="T:System.ArgumentNullException">The parameter <paramref name="e" /> is null. </exception>
/// <exception cref="T:System.ArgumentOutOfRangeException">The <paramref name="skipFrames" /> parameter is negative. </exception>
// Token: 0x0600116F RID: 4463 RVA: 0x000456B0 File Offset: 0x000438B0
public StackTrace(Exception e, int skipFrames)
: this(e, skipFrames, false)
{
}
/// <summary>Initializes a new instance of the <see cref="T:System.Diagnostics.StackTrace" /> class using the provided exception object, skipping the specified number of frames and optionally capturing source information.</summary>
/// <param name="e">The exception object from which to construct the stack trace. </param>
/// <param name="skipFrames">The number of frames up the stack from which to start the trace. </param>
/// <param name="fNeedFileInfo">true to capture the file name, line number, and column number; otherwise, false. </param>
/// <exception cref="T:System.ArgumentNullException">The parameter <paramref name="e" /> is null. </exception>
/// <exception cref="T:System.ArgumentOutOfRangeException">The <paramref name="skipFrames" /> parameter is negative. </exception>
// Token: 0x06001170 RID: 4464 RVA: 0x000456BC File Offset: 0x000438BC
public StackTrace(Exception e, int skipFrames, bool fNeedFileInfo)
: this(e, skipFrames, fNeedFileInfo, false)
{
}
// Token: 0x06001171 RID: 4465 RVA: 0x000456C8 File Offset: 0x000438C8
internal StackTrace(Exception e, int skipFrames, bool fNeedFileInfo, bool returnNativeFrames)
{
if (e == null)
{
throw new ArgumentNullException("e");
}
if (skipFrames < 0)
{
throw new ArgumentOutOfRangeException("< 0", "skipFrames");
}
this.frames = StackTrace.get_trace(e, skipFrames, fNeedFileInfo);
if (!returnNativeFrames)
{
bool flag = false;
for (int i = 0; i < this.frames.Length; i++)
{
if (this.frames[i].GetMethod() == null)
{
flag = true;
}
}
if (flag)
{
ArrayList arrayList = new ArrayList();
for (int j = 0; j < this.frames.Length; j++)
{
if (this.frames[j].GetMethod() != null)
{
arrayList.Add(this.frames[j]);
}
}
this.frames = (StackFrame[])arrayList.ToArray(typeof(StackFrame));
}
}
}
/// <summary>Initializes a new instance of the <see cref="T:System.Diagnostics.StackTrace" /> class that contains a single frame.</summary>
/// <param name="frame">The frame that the <see cref="T:System.Diagnostics.StackTrace" /> object should contain. </param>
// Token: 0x06001172 RID: 4466 RVA: 0x000457A8 File Offset: 0x000439A8
public StackTrace(StackFrame frame)
{
this.frames = new StackFrame[1];
this.frames[0] = frame;
}
/// <summary>Initializes a new instance of the <see cref="T:System.Diagnostics.StackTrace" /> class for a specific thread, optionally capturing source information.</summary>
/// <param name="targetThread">The thread whose stack trace is requested. </param>
/// <param name="needFileInfo">true to capture the file name, line number, and column number; otherwise, false. </param>
/// <exception cref="T:System.Threading.ThreadStateException">The thread <paramref name="targetThread" /> is not suspended. </exception>
// Token: 0x06001173 RID: 4467 RVA: 0x000457C8 File Offset: 0x000439C8
[MonoTODO("Not possible to create StackTraces from other threads")]
public StackTrace(Thread targetThread, bool needFileInfo)
{
throw new NotImplementedException();
}
// Token: 0x06001174 RID: 4468 RVA: 0x000457D8 File Offset: 0x000439D8
private void init_frames(int skipFrames, bool fNeedFileInfo)
{
if (skipFrames < 0)
{
throw new ArgumentOutOfRangeException("< 0", "skipFrames");
}
ArrayList arrayList = new ArrayList();
skipFrames += 2;
StackFrame stackFrame;
while ((stackFrame = new StackFrame(skipFrames, fNeedFileInfo)) != null && stackFrame.GetMethod() != null)
{
arrayList.Add(stackFrame);
skipFrames++;
}
this.debug_info = fNeedFileInfo;
this.frames = (StackFrame[])arrayList.ToArray(typeof(StackFrame));
}
// Token: 0x06001175 RID: 4469
[MethodImpl(MethodImplOptions.InternalCall)]
private static extern StackFrame[] get_trace(Exception e, int skipFrames, bool fNeedFileInfo);
/// <summary>Gets the number of frames in the stack trace.</summary>
/// <returns>The number of frames in the stack trace. </returns>
/// <filterpriority>2</filterpriority>
// Token: 0x170002FA RID: 762
// (get) Token: 0x06001176 RID: 4470 RVA: 0x00045854 File Offset: 0x00043A54
public virtual int FrameCount
{
get
{
return (this.frames != null) ? this.frames.Length : 0;
}
}
/// <summary>Gets the specified stack frame.</summary>
/// <returns>The specified stack frame.</returns>
/// <param name="index">The index of the stack frame requested. </param>
/// <filterpriority>2</filterpriority>
// Token: 0x06001177 RID: 4471 RVA: 0x00045870 File Offset: 0x00043A70
public virtual StackFrame GetFrame(int index)
{
if (index < 0 || index >= this.FrameCount)
{
return null;
}
return this.frames[index];
}
/// <summary>Returns a copy of all stack frames in the current stack trace.</summary>
/// <returns>An array of type <see cref="T:System.Diagnostics.StackFrame" /> representing the function calls in the stack trace.</returns>
/// <filterpriority>2</filterpriority>
// Token: 0x06001178 RID: 4472 RVA: 0x00045890 File Offset: 0x00043A90
[ComVisible(false)]
public virtual StackFrame[] GetFrames()
{
return this.frames;
}
/// <summary>Builds a readable representation of the stack trace.</summary>
/// <returns>A readable representation of the stack trace.</returns>
/// <filterpriority>2</filterpriority>
// Token: 0x06001179 RID: 4473 RVA: 0x00045898 File Offset: 0x00043A98
public override string ToString()
{
string text = string.Format("{0} {1} ", Environment.NewLine, Locale.GetText("at"));
string text2 = Locale.GetText("<unknown method>");
string text3 = Locale.GetText(" in {0}:line {1}");
StringBuilder stringBuilder = new StringBuilder();
for (int i = 0; i < this.FrameCount; i++)
{
StackFrame frame = this.GetFrame(i);
if (i > 0)
{
stringBuilder.Append(text);
}
else
{
stringBuilder.AppendFormat(" {0} ", Locale.GetText("at"));
}
MethodBase method = frame.GetMethod();
if (method != null)
{
stringBuilder.AppendFormat("{0}.{1}", method.DeclaringType.FullName, method.Name);
stringBuilder.Append("(");
ParameterInfo[] parameters = method.GetParameters();
for (int j = 0; j < parameters.Length; j++)
{
if (j > 0)
{
stringBuilder.Append(", ");
}
Type type = parameters[j].ParameterType;
bool isByRef = type.IsByRef;
if (isByRef)
{
type = type.GetElementType();
}
if (type.IsClass && type.Namespace != string.Empty)
{
stringBuilder.Append(type.Namespace);
stringBuilder.Append(".");
}
stringBuilder.Append(type.Name);
if (isByRef)
{
stringBuilder.Append(" ByRef");
}
stringBuilder.AppendFormat(" {0}", parameters[j].Name);
}
stringBuilder.Append(")");
}
else
{
stringBuilder.Append(text2);
}
if (this.debug_info)
{
string secureFileName = frame.GetSecureFileName();
if (secureFileName != "<filename unknown>")
{
stringBuilder.AppendFormat(text3, secureFileName, frame.GetFileLineNumber());
}
}
}
return stringBuilder.ToString();
}
/// <summary>Defines the default for the number of methods to omit from the stack trace. This field is constant.</summary>
/// <filterpriority>1</filterpriority>
// Token: 0x0400045C RID: 1116
public const int METHODS_TO_SKIP = 0;
// Token: 0x0400045D RID: 1117
private StackFrame[] frames;
// Token: 0x0400045E RID: 1118
private bool debug_info;
}
}
@@ -0,0 +1,20 @@
using System;
using System.Runtime.InteropServices;
namespace System.Diagnostics.SymbolStore
{
/// <summary>Represents a symbol binder for managed code.</summary>
// Token: 0x0200014B RID: 331
[ComVisible(true)]
public interface ISymbolBinder
{
/// <summary>Gets the interface of the symbol reader for the current file.</summary>
/// <returns>The <see cref="T:System.Diagnostics.SymbolStore.ISymbolReader" /> interface that reads the debugging symbols.</returns>
/// <param name="importer">The metadata import interface. </param>
/// <param name="filename">The name of the file for which the reader interface is required. </param>
/// <param name="searchPath">The search path used to locate the symbol file. </param>
// Token: 0x060010D5 RID: 4309
[Obsolete("This interface is not 64-bit clean. Use ISymbolBinder1 instead", false)]
ISymbolReader GetReader(int importer, string filename, string searchPath);
}
}
@@ -0,0 +1,19 @@
using System;
using System.Runtime.InteropServices;
namespace System.Diagnostics.SymbolStore
{
/// <summary>Represents a symbol binder for managed code.</summary>
// Token: 0x0200014C RID: 332
[ComVisible(true)]
public interface ISymbolBinder1
{
/// <summary>Gets the interface of the symbol reader for the current file.</summary>
/// <returns>The <see cref="T:System.Diagnostics.SymbolStore.ISymbolReader" /> interface that reads the debugging symbols.</returns>
/// <param name="importer">An <see cref="T:System.IntPtr" /> that refers to the metadata import interface. </param>
/// <param name="filename">The name of the file for which the reader interface is required. </param>
/// <param name="searchPath">The search path used to locate the symbol file. </param>
// Token: 0x060010D6 RID: 4310
ISymbolReader GetReader(IntPtr importer, string filename, string searchPath);
}
}
@@ -0,0 +1,73 @@
using System;
using System.Runtime.InteropServices;
namespace System.Diagnostics.SymbolStore
{
/// <summary>Represents a document referenced by a symbol store.</summary>
// Token: 0x0200014D RID: 333
[ComVisible(true)]
public interface ISymbolDocument
{
/// <summary>Gets the checksum algorithm identifier.</summary>
/// <returns>A GUID identifying the checksum algorithm. The value is all zeros, if there is no checksum.</returns>
// Token: 0x170002D0 RID: 720
// (get) Token: 0x060010D7 RID: 4311
Guid CheckSumAlgorithmId { get; }
/// <summary>Gets the type of the current document.</summary>
/// <returns>The type of the current document.</returns>
// Token: 0x170002D1 RID: 721
// (get) Token: 0x060010D8 RID: 4312
Guid DocumentType { get; }
/// <summary>Checks whether the current document is stored in the symbol store.</summary>
/// <returns>true if the current document is stored in the symbol store; otherwise, false.</returns>
// Token: 0x170002D2 RID: 722
// (get) Token: 0x060010D9 RID: 4313
bool HasEmbeddedSource { get; }
/// <summary>Gets the language of the current document.</summary>
/// <returns>The language of the current document.</returns>
// Token: 0x170002D3 RID: 723
// (get) Token: 0x060010DA RID: 4314
Guid Language { get; }
/// <summary>Gets the language vendor of the current document.</summary>
/// <returns>The language vendor of the current document.</returns>
// Token: 0x170002D4 RID: 724
// (get) Token: 0x060010DB RID: 4315
Guid LanguageVendor { get; }
/// <summary>Gets the length, in bytes, of the embedded source.</summary>
/// <returns>The source length of the current document.</returns>
// Token: 0x170002D5 RID: 725
// (get) Token: 0x060010DC RID: 4316
int SourceLength { get; }
/// <summary>Gets the URL of the current document.</summary>
/// <returns>The URL of the current document.</returns>
// Token: 0x170002D6 RID: 726
// (get) Token: 0x060010DD RID: 4317
string URL { get; }
/// <summary>Returns the closest line that is a sequence point, given a line in the current document that might or might not be a sequence point.</summary>
/// <returns>The closest line that is a sequence point.</returns>
/// <param name="line">The specified line in the document. </param>
// Token: 0x060010DE RID: 4318
int FindClosestLine(int line);
/// <summary>Gets the checksum.</summary>
/// <returns>The checksum.</returns>
// Token: 0x060010DF RID: 4319
byte[] GetCheckSum();
/// <summary>Gets the embedded document source for the specified range.</summary>
/// <returns>The document source for the specified range.</returns>
/// <param name="startLine">The starting line in the current document. </param>
/// <param name="startColumn">The starting column in the current document. </param>
/// <param name="endLine">The ending line in the current document. </param>
/// <param name="endColumn">The ending column in the current document. </param>
// Token: 0x060010E0 RID: 4320
byte[] GetSourceRange(int startLine, int startColumn, int endLine, int endColumn);
}
}
@@ -0,0 +1,22 @@
using System;
using System.Runtime.InteropServices;
namespace System.Diagnostics.SymbolStore
{
/// <summary>Represents a document referenced by a symbol store.</summary>
// Token: 0x0200014E RID: 334
[ComVisible(true)]
public interface ISymbolDocumentWriter
{
/// <summary>Sets checksum information.</summary>
/// <param name="algorithmId">The GUID representing the algorithm ID. </param>
/// <param name="checkSum">The checksum. </param>
// Token: 0x060010E1 RID: 4321
void SetCheckSum(Guid algorithmId, byte[] checkSum);
/// <summary>Stores the raw source for a document in the symbol store.</summary>
/// <param name="source">The document source represented as unsigned bytes. </param>
// Token: 0x060010E2 RID: 4322
void SetSource(byte[] source);
}
}
@@ -0,0 +1,79 @@
using System;
using System.Runtime.InteropServices;
namespace System.Diagnostics.SymbolStore
{
/// <summary>Represents a method within a symbol store.</summary>
// Token: 0x0200014F RID: 335
[ComVisible(true)]
public interface ISymbolMethod
{
/// <summary>Gets the root lexical scope for the current method. This scope encloses the entire method.</summary>
/// <returns>The root lexical scope that encloses the entire method.</returns>
// Token: 0x170002D7 RID: 727
// (get) Token: 0x060010E3 RID: 4323
ISymbolScope RootScope { get; }
/// <summary>Gets a count of the sequence points in the method.</summary>
/// <returns>The count of the sequence points in the method.</returns>
// Token: 0x170002D8 RID: 728
// (get) Token: 0x060010E4 RID: 4324
int SequencePointCount { get; }
/// <summary>Gets the <see cref="T:System.Diagnostics.SymbolStore.SymbolToken" /> containing the metadata for the current method.</summary>
/// <returns>The metadata token for the current method.</returns>
// Token: 0x170002D9 RID: 729
// (get) Token: 0x060010E5 RID: 4325
SymbolToken Token { get; }
/// <summary>Gets the namespace that the current method is defined within.</summary>
/// <returns>The namespace that the current method is defined within.</returns>
// Token: 0x060010E6 RID: 4326
ISymbolNamespace GetNamespace();
/// <summary>Gets the Microsoft intermediate language (MSIL) offset within the method that corresponds to the specified position.</summary>
/// <returns>The offset within the specified document.</returns>
/// <param name="document">The document for which the offset is requested. </param>
/// <param name="line">The document line corresponding to the offset. </param>
/// <param name="column">The document column corresponding to the offset. </param>
// Token: 0x060010E7 RID: 4327
int GetOffset(ISymbolDocument document, int line, int column);
/// <summary>Gets the parameters for the current method.</summary>
/// <returns>The array of parameters for the current method.</returns>
// Token: 0x060010E8 RID: 4328
ISymbolVariable[] GetParameters();
/// <summary>Gets an array of start and end offset pairs that correspond to the ranges of Microsoft intermediate language (MSIL) that a given position covers within this method.</summary>
/// <returns>An array of start and end offset pairs.</returns>
/// <param name="document">The document for which the offset is requested. </param>
/// <param name="line">The document line corresponding to the ranges. </param>
/// <param name="column">The document column corresponding to the ranges. </param>
// Token: 0x060010E9 RID: 4329
int[] GetRanges(ISymbolDocument document, int line, int column);
/// <summary>Returns the most enclosing lexical scope when given an offset within a method.</summary>
/// <returns>The most enclosing lexical scope for the given byte offset within the method.</returns>
/// <param name="offset">The byte offset within the method of the lexical scope. </param>
// Token: 0x060010EA RID: 4330
ISymbolScope GetScope(int offset);
/// <summary>Gets the sequence points for the current method.</summary>
/// <param name="offsets">The array of byte offsets from the beginning of the method for the sequence points. </param>
/// <param name="documents">The array of documents in which the sequence points are located. </param>
/// <param name="lines">The array of lines in the documents at which the sequence points are located. </param>
/// <param name="columns">The array of columns in the documents at which the sequence points are located. </param>
/// <param name="endLines">The array of lines in the documents at which the sequence points end. </param>
/// <param name="endColumns">The array of columns in the documents at which the sequence points end. </param>
// Token: 0x060010EB RID: 4331
void GetSequencePoints(int[] offsets, ISymbolDocument[] documents, int[] lines, int[] columns, int[] endLines, int[] endColumns);
/// <summary>Gets the start and end positions for the source of the current method.</summary>
/// <returns>true if the positions were defined; otherwise, false.</returns>
/// <param name="docs">The starting and ending source documents. </param>
/// <param name="lines">The starting and ending lines in the corresponding source documents. </param>
/// <param name="columns">The starting and ending columns in the corresponding source documents. </param>
// Token: 0x060010EC RID: 4332
bool GetSourceStartEnd(ISymbolDocument[] docs, int[] lines, int[] columns);
}
}
@@ -0,0 +1,27 @@
using System;
using System.Runtime.InteropServices;
namespace System.Diagnostics.SymbolStore
{
/// <summary>Represents a namespace within a symbol store.</summary>
// Token: 0x02000150 RID: 336
[ComVisible(true)]
public interface ISymbolNamespace
{
/// <summary>Gets the current namespace.</summary>
/// <returns>The current namespace.</returns>
// Token: 0x170002DA RID: 730
// (get) Token: 0x060010ED RID: 4333
string Name { get; }
/// <summary>Gets the child members of the current namespace.</summary>
/// <returns>The child members of the current namespace.</returns>
// Token: 0x060010EE RID: 4334
ISymbolNamespace[] GetNamespaces();
/// <summary>Gets all the variables defined at global scope within the current namespace.</summary>
/// <returns>The variables defined at global scope within the current namespace.</returns>
// Token: 0x060010EF RID: 4335
ISymbolVariable[] GetVariables();
}
}
@@ -0,0 +1,75 @@
using System;
using System.Runtime.InteropServices;
namespace System.Diagnostics.SymbolStore
{
/// <summary>Represents a symbol reader for managed code.</summary>
// Token: 0x02000151 RID: 337
[ComVisible(true)]
public interface ISymbolReader
{
/// <summary>Gets the metadata token for the method that was specified as the user entry point for the module, if any.</summary>
/// <returns>The metadata token for the method that is the user entry point for the module.</returns>
// Token: 0x170002DB RID: 731
// (get) Token: 0x060010F0 RID: 4336
SymbolToken UserEntryPoint { get; }
/// <summary>Gets a document specified by the language, vendor, and type.</summary>
/// <returns>The specified document.</returns>
/// <param name="url">The URL that identifies the document. </param>
/// <param name="language">The document language. You can specify this parameter as <see cref="F:System.Guid.Empty" />. </param>
/// <param name="languageVendor">The identity of the vendor for the document language. You can specify this parameter as <see cref="F:System.Guid.Empty" />.</param>
/// <param name="documentType">The type of the document. You can specify this parameter as <see cref="F:System.Guid.Empty" />.</param>
// Token: 0x060010F1 RID: 4337
ISymbolDocument GetDocument(string url, Guid language, Guid languageVendor, Guid documentType);
/// <summary>Gets an array of all documents defined in the symbol store.</summary>
/// <returns>An array of all documents defined in the symbol store.</returns>
// Token: 0x060010F2 RID: 4338
ISymbolDocument[] GetDocuments();
/// <summary>Gets all global variables in the module.</summary>
/// <returns>An array of all variables in the module.</returns>
// Token: 0x060010F3 RID: 4339
ISymbolVariable[] GetGlobalVariables();
/// <summary>Gets a symbol reader method object when given the identifier of a method.</summary>
/// <returns>The symbol reader method object for the specified method identifier.</returns>
/// <param name="method">The metadata token of the method. </param>
// Token: 0x060010F4 RID: 4340
ISymbolMethod GetMethod(SymbolToken method);
/// <summary>Gets a symbol reader method object when given the identifier of a method and its edit and continue version.</summary>
/// <returns>The symbol reader method object for the specified method identifier.</returns>
/// <param name="method">The metadata token of the method. </param>
/// <param name="version">The edit and continue version of the method. </param>
// Token: 0x060010F5 RID: 4341
ISymbolMethod GetMethod(SymbolToken method, int version);
/// <summary>Gets a symbol reader method object that contains a specified position in a document.</summary>
/// <returns>The reader method object for the specified position in the document.</returns>
/// <param name="document">The document in which the method is located. </param>
/// <param name="line">The position of the line within the document. The lines are numbered, beginning with 1. </param>
/// <param name="column">The position of column within the document. The columns are numbered, beginning with 1. </param>
// Token: 0x060010F6 RID: 4342
ISymbolMethod GetMethodFromDocumentPosition(ISymbolDocument document, int line, int column);
/// <summary>Gets the namespaces that are defined in the global scope within the current symbol store.</summary>
/// <returns>The namespaces defined in the global scope within the current symbol store.</returns>
// Token: 0x060010F7 RID: 4343
ISymbolNamespace[] GetNamespaces();
/// <summary>Gets an attribute value when given the attribute name.</summary>
/// <returns>The value of the attribute.</returns>
/// <param name="parent">The metadata token for the object for which the attribute is requested. </param>
/// <param name="name">The attribute name. </param>
// Token: 0x060010F8 RID: 4344
byte[] GetSymAttribute(SymbolToken parent, string name);
/// <summary>Gets the variables that are not local when given the parent.</summary>
/// <returns>An array of variables for the parent.</returns>
/// <param name="parent">The metadata token for the type for which the variables are requested. </param>
// Token: 0x060010F9 RID: 4345
ISymbolVariable[] GetVariables(SymbolToken parent);
}
}
@@ -0,0 +1,50 @@
using System;
using System.Runtime.InteropServices;
namespace System.Diagnostics.SymbolStore
{
/// <summary>Represents a lexical scope within <see cref="T:System.Diagnostics.SymbolStore.ISymbolMethod" />, providing access to the start and end offsets of the scope, as well as its child and parent scopes.</summary>
// Token: 0x02000152 RID: 338
[ComVisible(true)]
public interface ISymbolScope
{
/// <summary>Gets the end offset of the current lexical scope.</summary>
/// <returns>The end offset of the current lexical scope.</returns>
// Token: 0x170002DC RID: 732
// (get) Token: 0x060010FA RID: 4346
int EndOffset { get; }
/// <summary>Gets the method that contains the current lexical scope.</summary>
/// <returns>The method that contains the current lexical scope.</returns>
// Token: 0x170002DD RID: 733
// (get) Token: 0x060010FB RID: 4347
ISymbolMethod Method { get; }
/// <summary>Gets the parent lexical scope of the current scope.</summary>
/// <returns>The parent lexical scope of the current scope.</returns>
// Token: 0x170002DE RID: 734
// (get) Token: 0x060010FC RID: 4348
ISymbolScope Parent { get; }
/// <summary>Gets the start offset of the current lexical scope.</summary>
/// <returns>The start offset of the current lexical scope.</returns>
// Token: 0x170002DF RID: 735
// (get) Token: 0x060010FD RID: 4349
int StartOffset { get; }
/// <summary>Gets the child lexical scopes of the current lexical scope.</summary>
/// <returns>The child lexical scopes that of the current lexical scope.</returns>
// Token: 0x060010FE RID: 4350
ISymbolScope[] GetChildren();
/// <summary>Gets the local variables within the current lexical scope.</summary>
/// <returns>The local variables within the current lexical scope.</returns>
// Token: 0x060010FF RID: 4351
ISymbolVariable[] GetLocals();
/// <summary>Gets the namespaces that are used within the current scope.</summary>
/// <returns>The namespaces that are used within the current scope.</returns>
// Token: 0x06001100 RID: 4352
ISymbolNamespace[] GetNamespaces();
}
}
@@ -0,0 +1,64 @@
using System;
using System.Runtime.InteropServices;
namespace System.Diagnostics.SymbolStore
{
/// <summary>Represents a variable within a symbol store.</summary>
// Token: 0x02000153 RID: 339
[ComVisible(true)]
public interface ISymbolVariable
{
/// <summary>Gets the first address of a variable.</summary>
/// <returns>The first address of the variable.</returns>
// Token: 0x170002E0 RID: 736
// (get) Token: 0x06001101 RID: 4353
int AddressField1 { get; }
/// <summary>Gets the second address of a variable.</summary>
/// <returns>The second address of the variable.</returns>
// Token: 0x170002E1 RID: 737
// (get) Token: 0x06001102 RID: 4354
int AddressField2 { get; }
/// <summary>Gets the third address of a variable.</summary>
/// <returns>The third address of the variable.</returns>
// Token: 0x170002E2 RID: 738
// (get) Token: 0x06001103 RID: 4355
int AddressField3 { get; }
/// <summary>Gets the <see cref="T:System.Diagnostics.SymbolStore.SymAddressKind" /> value describing the type of the address.</summary>
/// <returns>The type of the address. One of the <see cref="T:System.Diagnostics.SymbolStore.SymAddressKind" /> values.</returns>
// Token: 0x170002E3 RID: 739
// (get) Token: 0x06001104 RID: 4356
SymAddressKind AddressKind { get; }
/// <summary>Gets the attributes of the variable.</summary>
/// <returns>The variable attributes.</returns>
// Token: 0x170002E4 RID: 740
// (get) Token: 0x06001105 RID: 4357
object Attributes { get; }
/// <summary>Gets the end offset of a variable within the scope of the variable.</summary>
/// <returns>The end offset of the variable.</returns>
// Token: 0x170002E5 RID: 741
// (get) Token: 0x06001106 RID: 4358
int EndOffset { get; }
/// <summary>Gets the name of the variable.</summary>
/// <returns>The name of the variable.</returns>
// Token: 0x170002E6 RID: 742
// (get) Token: 0x06001107 RID: 4359
string Name { get; }
/// <summary>Gets the start offset of the variable within the scope of the variable.</summary>
/// <returns>The start offset of the variable.</returns>
// Token: 0x170002E7 RID: 743
// (get) Token: 0x06001108 RID: 4360
int StartOffset { get; }
/// <summary>Gets the variable signature.</summary>
/// <returns>The variable signature as an opaque blob.</returns>
// Token: 0x06001109 RID: 4361
byte[] GetSignature();
}
}
@@ -0,0 +1,157 @@
using System;
using System.Reflection;
using System.Runtime.InteropServices;
namespace System.Diagnostics.SymbolStore
{
/// <summary>Represents a symbol writer for managed code.</summary>
// Token: 0x02000154 RID: 340
[ComVisible(true)]
public interface ISymbolWriter
{
/// <summary>Closes <see cref="T:System.Diagnostics.SymbolStore.ISymbolWriter" /> and commits the symbols to the symbol store.</summary>
// Token: 0x0600110A RID: 4362
void Close();
/// <summary>Closes the current method.</summary>
// Token: 0x0600110B RID: 4363
void CloseMethod();
/// <summary>Closes the most recent namespace.</summary>
// Token: 0x0600110C RID: 4364
void CloseNamespace();
/// <summary>Closes the current lexical scope.</summary>
/// <param name="endOffset">The points past the last instruction in the scope. </param>
// Token: 0x0600110D RID: 4365
void CloseScope(int endOffset);
/// <summary>Defines a source document.</summary>
/// <returns>The object that represents the document.</returns>
/// <param name="url">The URL that identifies the document. </param>
/// <param name="language">The document language. This parameter can be <see cref="F:System.Guid.Empty" />. </param>
/// <param name="languageVendor">The identity of the vendor for the document language. This parameter can be <see cref="F:System.Guid.Empty" />. </param>
/// <param name="documentType">The type of the document. This parameter can be <see cref="F:System.Guid.Empty" />. </param>
// Token: 0x0600110E RID: 4366
ISymbolDocumentWriter DefineDocument(string url, Guid language, Guid languageVendor, Guid documentType);
/// <summary>Defines a field in a type or a global field.</summary>
/// <param name="parent">The metadata type or method token. </param>
/// <param name="name">The field name. </param>
/// <param name="attributes">A bitwise combination of the field attributes. </param>
/// <param name="signature">The field signature. </param>
/// <param name="addrKind">The address types for <paramref name="addr1" /> and <paramref name="addr2" />. </param>
/// <param name="addr1">The first address for the field specification. </param>
/// <param name="addr2">The second address for the field specification. </param>
/// <param name="addr3">The third address for the field specification. </param>
// Token: 0x0600110F RID: 4367
void DefineField(SymbolToken parent, string name, FieldAttributes attributes, byte[] signature, SymAddressKind addrKind, int addr1, int addr2, int addr3);
/// <summary>Defines a single global variable.</summary>
/// <param name="name">The global variable name. </param>
/// <param name="attributes">A bitwise combination of the global variable attributes. </param>
/// <param name="signature">The global variable signature. </param>
/// <param name="addrKind">The address types for <paramref name="addr1" />, <paramref name="addr2" />, and <paramref name="addr3" />. </param>
/// <param name="addr1">The first address for the global variable specification. </param>
/// <param name="addr2">The second address for the global variable specification. </param>
/// <param name="addr3">The third address for the global variable specification. </param>
// Token: 0x06001110 RID: 4368
void DefineGlobalVariable(string name, FieldAttributes attributes, byte[] signature, SymAddressKind addrKind, int addr1, int addr2, int addr3);
/// <summary>Defines a single variable in the current lexical scope.</summary>
/// <param name="name">The local variable name. </param>
/// <param name="attributes">A bitwise combination of the local variable attributes. </param>
/// <param name="signature">The local variable signature. </param>
/// <param name="addrKind">The address types for <paramref name="addr1" />, <paramref name="addr2" />, and <paramref name="addr3" />. </param>
/// <param name="addr1">The first address for the local variable specification. </param>
/// <param name="addr2">The second address for the local variable specification. </param>
/// <param name="addr3">The third address for the local variable specification. </param>
/// <param name="startOffset">The start offset for the variable. If this parameter is zero, it is ignored and the variable is defined throughout the entire scope. If the parameter is nonzero, the variable falls within the offsets of the current scope. </param>
/// <param name="endOffset">The end offset for the variable. If this parameter is zero, it is ignored and the variable is defined throughout the entire scope. If the parameter is nonzero, the variable falls within the offsets of the current scope. </param>
// Token: 0x06001111 RID: 4369
void DefineLocalVariable(string name, FieldAttributes attributes, byte[] signature, SymAddressKind addrKind, int addr1, int addr2, int addr3, int startOffset, int endOffset);
/// <summary>Defines a single parameter in the current method. The type of each parameter is taken from its position within the signature of the method.</summary>
/// <param name="name">The parameter name. </param>
/// <param name="attributes">A bitwise combination of the parameter attributes. </param>
/// <param name="sequence">The parameter signature. </param>
/// <param name="addrKind">The address types for <paramref name="addr1" />, <paramref name="addr2" />, and <paramref name="addr3" />. </param>
/// <param name="addr1">The first address for the parameter specification. </param>
/// <param name="addr2">The second address for the parameter specification. </param>
/// <param name="addr3">The third address for the parameter specification. </param>
// Token: 0x06001112 RID: 4370
void DefineParameter(string name, ParameterAttributes attributes, int sequence, SymAddressKind addrKind, int addr1, int addr2, int addr3);
/// <summary>Defines a group of sequence points within the current method.</summary>
/// <param name="document">The document object for which the sequence points are being defined. </param>
/// <param name="offsets">The sequence point offsets measured from the beginning of methods. </param>
/// <param name="lines">The document lines for the sequence points. </param>
/// <param name="columns">The document positions for the sequence points. </param>
/// <param name="endLines">The document end lines for the sequence points. </param>
/// <param name="endColumns">The document end positions for the sequence points. </param>
// Token: 0x06001113 RID: 4371
void DefineSequencePoints(ISymbolDocumentWriter document, int[] offsets, int[] lines, int[] columns, int[] endLines, int[] endColumns);
/// <summary>Sets the metadata emitter interface to associate with a writer.</summary>
/// <param name="emitter">The metadata emitter interface. </param>
/// <param name="filename">The file name for which the debugging symbols are written. Some writers require a file name, and others do not. If a file name is specified for a writer that does not use file names, this parameter is ignored. </param>
/// <param name="fFullBuild">true indicates that this is a full rebuild; false indicates that this is an incremental compilation. </param>
// Token: 0x06001114 RID: 4372
void Initialize(IntPtr emitter, string filename, bool fFullBuild);
/// <summary>Opens a method to place symbol information into.</summary>
/// <param name="method">The metadata token for the method to be opened. </param>
// Token: 0x06001115 RID: 4373
void OpenMethod(SymbolToken method);
/// <summary>Opens a new namespace.</summary>
/// <param name="name">The name of the new namespace. </param>
// Token: 0x06001116 RID: 4374
void OpenNamespace(string name);
/// <summary>Opens a new lexical scope in the current method.</summary>
/// <returns>An opaque scope identifier that can be used with <see cref="M:System.Diagnostics.SymbolStore.ISymbolWriter.SetScopeRange(System.Int32,System.Int32,System.Int32)" /> to define the start and end offsets of a scope at a later time. In this case, the offsets passed to <see cref="M:System.Diagnostics.SymbolStore.ISymbolWriter.OpenScope(System.Int32)" /> and <see cref="M:System.Diagnostics.SymbolStore.ISymbolWriter.CloseScope(System.Int32)" /> are ignored. A scope identifier is valid only in the current method.</returns>
/// <param name="startOffset">The offset, in bytes, from the beginning of the method to the first instruction in the lexical scope. </param>
// Token: 0x06001117 RID: 4375
int OpenScope(int startOffset);
/// <summary>Specifies the true start and end of a method within a source file. Use <see cref="M:System.Diagnostics.SymbolStore.ISymbolWriter.SetMethodSourceRange(System.Diagnostics.SymbolStore.ISymbolDocumentWriter,System.Int32,System.Int32,System.Diagnostics.SymbolStore.ISymbolDocumentWriter,System.Int32,System.Int32)" /> to specify the extent of a method, independent of the sequence points that exist within the method.</summary>
/// <param name="startDoc">The document that contains the starting position. </param>
/// <param name="startLine">The starting line number. </param>
/// <param name="startColumn">The starting column. </param>
/// <param name="endDoc">The document that contains the ending position. </param>
/// <param name="endLine">The ending line number. </param>
/// <param name="endColumn">The ending column number. </param>
// Token: 0x06001118 RID: 4376
void SetMethodSourceRange(ISymbolDocumentWriter startDoc, int startLine, int startColumn, ISymbolDocumentWriter endDoc, int endLine, int endColumn);
/// <summary>Defines the offset range for the specified lexical scope.</summary>
/// <param name="scopeID">The identifier of the lexical scope. </param>
/// <param name="startOffset">The byte offset of the beginning of the lexical scope. </param>
/// <param name="endOffset">The byte offset of the end of the lexical scope. </param>
// Token: 0x06001119 RID: 4377
void SetScopeRange(int scopeID, int startOffset, int endOffset);
/// <summary>Defines an attribute when given the attribute name and the attribute value.</summary>
/// <param name="parent">The metadata token for which the attribute is being defined. </param>
/// <param name="name">The attribute name. </param>
/// <param name="data">The attribute value. </param>
// Token: 0x0600111A RID: 4378
void SetSymAttribute(SymbolToken parent, string name, byte[] data);
/// <summary>Sets the underlying ISymUnmanagedWriter (the corresponding unmanaged interface) that a managed <see cref="T:System.Diagnostics.SymbolStore.ISymbolWriter" /> uses to emit symbols.</summary>
/// <param name="underlyingWriter">A pointer to code that represents the underlying writer. </param>
// Token: 0x0600111B RID: 4379
void SetUnderlyingWriter(IntPtr underlyingWriter);
/// <summary>Identifies the user-defined method as the entry point for the current module.</summary>
/// <param name="entryMethod">The metadata token for the method that is the user entry point. </param>
// Token: 0x0600111C RID: 4380
void SetUserEntryPoint(SymbolToken entryMethod);
/// <summary>Specifies that the given, fully qualified namespace name is used within the open lexical scope.</summary>
/// <param name="fullName">The fully qualified name of the namespace. </param>
// Token: 0x0600111D RID: 4381
void UsingNamespace(string fullName);
}
}
@@ -0,0 +1,43 @@
using System;
using System.Runtime.InteropServices;
namespace System.Diagnostics.SymbolStore
{
/// <summary>Specifies address types for local variables, parameters, and fields in the methods <see cref="M:System.Diagnostics.SymbolStore.ISymbolWriter.DefineLocalVariable(System.String,System.Reflection.FieldAttributes,System.Byte[],System.Diagnostics.SymbolStore.SymAddressKind,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32)" />, <see cref="M:System.Diagnostics.SymbolStore.ISymbolWriter.DefineParameter(System.String,System.Reflection.ParameterAttributes,System.Int32,System.Diagnostics.SymbolStore.SymAddressKind,System.Int32,System.Int32,System.Int32)" />, and <see cref="M:System.Diagnostics.SymbolStore.ISymbolWriter.DefineField(System.Diagnostics.SymbolStore.SymbolToken,System.String,System.Reflection.FieldAttributes,System.Byte[],System.Diagnostics.SymbolStore.SymAddressKind,System.Int32,System.Int32,System.Int32)" /> of the <see cref="T:System.Diagnostics.SymbolStore.ISymbolWriter" /> interface.</summary>
// Token: 0x02000155 RID: 341
[ComVisible(true)]
[Serializable]
public enum SymAddressKind
{
/// <summary>A Microsoft intermediate language (MSIL) offset. The <paramref name="addr1" /> parameter is the MSIL local variable or parameter index.</summary>
// Token: 0x04000420 RID: 1056
ILOffset = 1,
/// <summary>A native Relevant Virtual Address (RVA). The <paramref name="addr1" /> parameter is the RVA in the module.</summary>
// Token: 0x04000421 RID: 1057
NativeRVA,
/// <summary>A native register address. The <paramref name="addr1" /> parameter is the register in which the variable is stored.</summary>
// Token: 0x04000422 RID: 1058
NativeRegister,
/// <summary>A register-relative address. The <paramref name="addr1" /> parameter is the register, and the <paramref name="addr2" /> parameter is the offset.</summary>
// Token: 0x04000423 RID: 1059
NativeRegisterRelative,
/// <summary>A native offset. The <paramref name="addr1" /> parameter is the offset from the start of the parent.</summary>
// Token: 0x04000424 RID: 1060
NativeOffset,
/// <summary>A register-relative address. The <paramref name="addr1" /> parameter is the low-order register, and the <paramref name="addr2" /> parameter is the high-order register.</summary>
// Token: 0x04000425 RID: 1061
NativeRegisterRegister,
/// <summary>A register-relative address. The <paramref name="addr1" /> parameter is the low-order register, the <paramref name="addr2" /> parameter is the stack register, and the <paramref name="addr3" /> parameter is the offset from the stack pointer to the high-order part of the value.</summary>
// Token: 0x04000426 RID: 1062
NativeRegisterStack,
/// <summary>A register-relative address. The <paramref name="addr1" /> parameter is the stack register, the <paramref name="addr2" /> parameter is the offset from the stack pointer to the low-order part of the value, and the <paramref name="addr3" /> parameter is the high-order register.</summary>
// Token: 0x04000427 RID: 1063
NativeStackRegister,
/// <summary>A bit field. The <paramref name="addr1" /> parameter is the position where the field starts, and the <paramref name="addr2" /> parameter is the field length.</summary>
// Token: 0x04000428 RID: 1064
BitField,
/// <summary>A native section offset. The <paramref name="addr1" /> parameter is the section, and the <paramref name="addr2" /> parameter is the offset.</summary>
// Token: 0x04000429 RID: 1065
NativeSectionOffset
}
}
@@ -0,0 +1,15 @@
using System;
using System.Runtime.InteropServices;
namespace System.Diagnostics.SymbolStore
{
/// <summary>Holds the public GUIDs for document types to be used with the symbol store.</summary>
// Token: 0x02000156 RID: 342
[ComVisible(true)]
public class SymDocumentType
{
/// <summary>Specifies the GUID of the document type to be used with the symbol store.</summary>
// Token: 0x0400042A RID: 1066
public static readonly Guid Text;
}
}
@@ -0,0 +1,55 @@
using System;
using System.Runtime.InteropServices;
namespace System.Diagnostics.SymbolStore
{
/// <summary>Holds the public GUIDs for language types to be used with the symbol store.</summary>
// Token: 0x02000157 RID: 343
[ComVisible(true)]
public class SymLanguageType
{
/// <summary>Specifies the GUID of the Basic language type to be used with the symbol store.</summary>
// Token: 0x0400042B RID: 1067
public static readonly Guid Basic;
/// <summary>Specifies the GUID of the C language type to be used with the symbol store.</summary>
// Token: 0x0400042C RID: 1068
public static readonly Guid C;
/// <summary>Specifies the GUID of the Cobol language type to be used with the symbol store.</summary>
// Token: 0x0400042D RID: 1069
public static readonly Guid Cobol;
/// <summary>Specifies the GUID of the C++ language type to be used with the symbol store.</summary>
// Token: 0x0400042E RID: 1070
public static readonly Guid CPlusPlus;
/// <summary>Specifies the GUID of the C# language type to be used with the symbol store.</summary>
// Token: 0x0400042F RID: 1071
public static readonly Guid CSharp;
/// <summary>Specifies the GUID of the ILAssembly language type to be used with the symbol store.</summary>
// Token: 0x04000430 RID: 1072
public static readonly Guid ILAssembly;
/// <summary>Specifies the GUID of the Java language type to be used with the symbol store.</summary>
// Token: 0x04000431 RID: 1073
public static readonly Guid Java;
/// <summary>Specifies the GUID of the JScript language type to be used with the symbol store.</summary>
// Token: 0x04000432 RID: 1074
public static readonly Guid JScript;
/// <summary>Specifies the GUID of the C++ language type to be used with the symbol store.</summary>
// Token: 0x04000433 RID: 1075
public static readonly Guid MCPlusPlus;
/// <summary>Specifies the GUID of the Pascal language type to be used with the symbol store.</summary>
// Token: 0x04000434 RID: 1076
public static readonly Guid Pascal;
/// <summary>Specifies the GUID of the SMC language type to be used with the symbol store.</summary>
// Token: 0x04000435 RID: 1077
public static readonly Guid SMC;
}
}
@@ -0,0 +1,15 @@
using System;
using System.Runtime.InteropServices;
namespace System.Diagnostics.SymbolStore
{
/// <summary>Holds the public GUIDs for language vendors to be used with the symbol store.</summary>
// Token: 0x02000158 RID: 344
[ComVisible(true)]
public class SymLanguageVendor
{
/// <summary>Specifies the GUID of the Microsoft language vendor.</summary>
// Token: 0x04000436 RID: 1078
public static readonly Guid Microsoft;
}
}
@@ -0,0 +1,76 @@
using System;
using System.Runtime.InteropServices;
namespace System.Diagnostics.SymbolStore
{
/// <summary>The <see cref="T:System.Diagnostics.SymbolStore.SymbolToken" /> structure is an object representation of a token that represents symbolic information.</summary>
// Token: 0x02000159 RID: 345
[ComVisible(true)]
public struct SymbolToken
{
/// <summary>Initializes a new instance of the <see cref="T:System.Diagnostics.SymbolStore.SymbolToken" /> structure when given a value.</summary>
/// <param name="val">The value to be used for the token. </param>
// Token: 0x06001121 RID: 4385 RVA: 0x00044EE8 File Offset: 0x000430E8
public SymbolToken(int val)
{
this._val = val;
}
/// <summary>Determines whether <paramref name="obj" /> is an instance of <see cref="T:System.Diagnostics.SymbolStore.SymbolToken" /> and is equal to this instance.</summary>
/// <returns>true if <paramref name="obj" /> is an instance of <see cref="T:System.Diagnostics.SymbolStore.SymbolToken" /> and is equal to this instance; otherwise, false.</returns>
/// <param name="obj">The object to check. </param>
// Token: 0x06001122 RID: 4386 RVA: 0x00044EF4 File Offset: 0x000430F4
public override bool Equals(object obj)
{
return obj is SymbolToken && ((SymbolToken)obj).GetToken() == this._val;
}
/// <summary>Determines whether <paramref name="obj" /> is equal to this instance.</summary>
/// <returns>true if <paramref name="obj" /> is equal to this instance; otherwise, false.</returns>
/// <param name="obj">The <see cref="T:System.Diagnostics.SymbolStore.SymbolToken" /> to check.</param>
// Token: 0x06001123 RID: 4387 RVA: 0x00044F24 File Offset: 0x00043124
public bool Equals(SymbolToken obj)
{
return obj.GetToken() == this._val;
}
/// <summary>Generates the hash code for the current token.</summary>
/// <returns>The hash code for the current token.</returns>
// Token: 0x06001124 RID: 4388 RVA: 0x00044F38 File Offset: 0x00043138
public override int GetHashCode()
{
return this._val.GetHashCode();
}
/// <summary>Gets the value of the current token.</summary>
/// <returns>The value of the current token.</returns>
// Token: 0x06001125 RID: 4389 RVA: 0x00044F48 File Offset: 0x00043148
public int GetToken()
{
return this._val;
}
/// <summary>Returns a value indicating whether two <see cref="T:System.Diagnostics.SymbolStore.SymbolToken" /> objects are equal.</summary>
/// <returns>true if <paramref name="a" /> and <paramref name="b" /> are equal; otherwise, false.</returns>
/// <param name="a">A <see cref="T:System.Diagnostics.SymbolStore.SymbolToken" /> structure.</param>
/// <param name="b">A <see cref="T:System.Diagnostics.SymbolStore.SymbolToken" /> structure.</param>
// Token: 0x06001126 RID: 4390 RVA: 0x00044F50 File Offset: 0x00043150
public static bool operator ==(SymbolToken a, SymbolToken b)
{
return a.Equals(b);
}
/// <summary>Returns a value indicating whether two <see cref="T:System.Diagnostics.SymbolStore.SymbolToken" /> objects are not equal.</summary>
/// <returns>true if <paramref name="a" /> and <paramref name="b" /> are not equal; otherwise, false.</returns>
/// <param name="a">A <see cref="T:System.Diagnostics.SymbolStore.SymbolToken" /> structure.</param>
/// <param name="b">A <see cref="T:System.Diagnostics.SymbolStore.SymbolToken" /> structure.</param>
// Token: 0x06001127 RID: 4391 RVA: 0x00044F5C File Offset: 0x0004315C
public static bool operator !=(SymbolToken a, SymbolToken b)
{
return !a.Equals(b);
}
// Token: 0x04000437 RID: 1079
private int _val;
}
}