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,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;
}
}