<DiagnosticsCodeanalysisSources Include="$(BclSourcesRoot)\System\Diagnostics\Contracts\ContractsBCL.cs" />
</ItemGroup>
<ItemGroup>
- <DiagnosticsSymbolstoreSources Include="$(BclSourcesRoot)\System\Diagnostics\SymbolStore\ISymBinder.cs" />
- <DiagnosticsSymbolstoreSources Include="$(BclSourcesRoot)\System\Diagnostics\SymbolStore\ISymDocument.cs" />
<DiagnosticsSymbolstoreSources Include="$(BclSourcesRoot)\System\Diagnostics\SymbolStore\ISymDocumentWriter.cs" />
- <DiagnosticsSymbolstoreSources Include="$(BclSourcesRoot)\System\Diagnostics\SymbolStore\ISymMethod.cs" />
- <DiagnosticsSymbolstoreSources Include="$(BclSourcesRoot)\System\Diagnostics\SymbolStore\ISymNamespace.cs" />
- <DiagnosticsSymbolstoreSources Include="$(BclSourcesRoot)\System\Diagnostics\SymbolStore\ISymReader.cs" />
- <DiagnosticsSymbolstoreSources Include="$(BclSourcesRoot)\System\Diagnostics\SymbolStore\ISymScope.cs" />
- <DiagnosticsSymbolstoreSources Include="$(BclSourcesRoot)\System\Diagnostics\SymbolStore\ISymVariable.cs" />
<DiagnosticsSymbolstoreSources Include="$(BclSourcesRoot)\System\Diagnostics\SymbolStore\ISymWriter.cs" />
<DiagnosticsSymbolstoreSources Include="$(BclSourcesRoot)\System\Diagnostics\SymbolStore\SymAddressKind.cs" />
- <DiagnosticsSymbolstoreSources Include="$(BclSourcesRoot)\System\Diagnostics\SymbolStore\SymDocumentType.cs" />
- <DiagnosticsSymbolstoreSources Include="$(BclSourcesRoot)\System\Diagnostics\SymbolStore\SymLanguageType.cs" />
- <DiagnosticsSymbolstoreSources Include="$(BclSourcesRoot)\System\Diagnostics\SymbolStore\SymLanguageVendor.cs" />
<DiagnosticsSymbolstoreSources Include="$(BclSourcesRoot)\System\Diagnostics\SymbolStore\Token.cs" />
</ItemGroup>
<ItemGroup>
+++ /dev/null
-// Licensed to the .NET Foundation under one or more agreements.
-// The .NET Foundation licenses this file to you under the MIT license.
-// See the LICENSE file in the project root for more information.
-
-
-/*============================================================
-**
-**
-**
-** Represents a symbol binder for managed code.
-**
-**
-===========================================================*/
-namespace System.Diagnostics.SymbolStore {
-
- using System;
- using System.Text;
- using System.Runtime.InteropServices;
-
- // Interface does not need to be marked with the serializable attribute
-[System.Runtime.InteropServices.ComVisible(true)]
- public interface ISymbolBinder
- {
- // The importer parameter should be an IntPtr, not an int. This interface can not be modified without
- // a breaking change, and so ISymbolBinderEx.GetReader() has been added with the correct marshalling layout.
- [Obsolete("The recommended alternative is ISymbolBinder1.GetReader. ISymbolBinder1.GetReader takes the importer interface pointer as an IntPtr instead of an Int32, and thus works on both 32-bit and 64-bit architectures. http://go.microsoft.com/fwlink/?linkid=14202=14202")]
- ISymbolReader GetReader(int importer, String filename,
- String searchPath);
- }
-
- // This interface has a revised ISymbolBinder.GetReader() with the proper signature.
- // It is not called ISymbolBinder2 because it maps to the IUnmanagedSymbolBinder interfaces, and
- // does not wrap the IUnmanagedSymbolBinder2 interfaces declared in CorSym.idl.
-[System.Runtime.InteropServices.ComVisible(true)]
- public interface ISymbolBinder1
- {
-
- ISymbolReader GetReader(IntPtr importer, String filename,
- String searchPath);
- }
-
-}
+++ /dev/null
-// Licensed to the .NET Foundation under one or more agreements.
-// The .NET Foundation licenses this file to you under the MIT license.
-// See the LICENSE file in the project root for more information.
-
-/*============================================================
-**
-**
-**
-** Represents a document referenced by a symbol store. A document is
-** defined by a URL and a document type GUID. Using the document type
-** GUID and the URL, one can locate the document however it is
-** stored. Document source can optionally be stored in the symbol
-** store. This interface also provides access to that source if it is
-** present.
-**
-**
-===========================================================*/
-namespace System.Diagnostics.SymbolStore {
-
- using System;
-
- // Interface does not need to be marked with the serializable attribute
-[System.Runtime.InteropServices.ComVisible(true)]
- public interface ISymbolDocument
- {
- // Properties of the document.
- String URL { get; }
- Guid DocumentType { get; }
-
- // Language of the document.
- Guid Language { get; }
- Guid LanguageVendor { get; }
-
- // Check sum information.
- Guid CheckSumAlgorithmId { get; }
- byte[] GetCheckSum();
-
- // Given a line in this document that may or may not be a sequence
- // point, return the closest line that is a sequence point.
- int FindClosestLine(int line);
-
- // Access to embedded source.
- bool HasEmbeddedSource { get; }
- int SourceLength { get; }
- byte[] GetSourceRange(int startLine, int startColumn,
- int endLine, int endColumn);
- }
-}
+++ /dev/null
-// Licensed to the .NET Foundation under one or more agreements.
-// The .NET Foundation licenses this file to you under the MIT license.
-// See the LICENSE file in the project root for more information.
-
-/*============================================================
-**
-**
-**
-** Represents a method within a symbol reader. This provides access to
-** only the symbol-related attributes of a method, such as sequence
-** points, lexical scopes, and parameter information. Use it in
-** conjucntion with other means to read the type-related attrbiutes of
-** a method, such as Reflections.
-**
-**
-===========================================================*/
-namespace System.Diagnostics.SymbolStore {
- using System.Runtime.InteropServices;
- using System;
-
- // Interface does not need to be marked with the serializable attribute
-[System.Runtime.InteropServices.ComVisible(true)]
- public interface ISymbolMethod
- {
- // Get the token for this method.
- SymbolToken Token { get; }
-
- // Get the count of sequence points.
- int SequencePointCount { get; }
-
- // Get the sequence points for this method. The sequence points
- // are sorted by offset and are for all documents in the
- // method. Use GetSequencePointCount to retrieve the count of all
- // sequence points and create arrays of the proper size.
- // GetSequencePoints will verify the size of each array and place
- // the sequence point information into each. If any array is NULL,
- // then the data for that array is simply not returned.
- void GetSequencePoints(int[] offsets,
- ISymbolDocument[] documents,
- int[] lines,
- int[] columns,
- int[] endLines,
- int[] endColumns);
-
- // Get the root lexical scope for this method. This scope encloses
- // the entire method.
- ISymbolScope RootScope { get; }
-
- // Given an offset within the method, returns the most enclosing
- // lexical scope. This can be used to start local variable
- // searches.
- ISymbolScope GetScope(int offset);
-
- // Given a position in a document, return the offset within the
- // method that corresponds to the position.
- int GetOffset(ISymbolDocument document,
- int line,
- int column);
-
- // Given a position in a document, return an array of start/end
- // offset paris that correspond to the ranges of IL that the
- // position covers within this method. The array is an array of
- // integers and is [start,end,start,end]. The number of range
- // pairs is the length of the array / 2.
- int[] GetRanges(ISymbolDocument document,
- int line,
- int column);
-
- // Get the parameters for this method. The paraemeters are
- // returned in the order they are defined within the method's
- // signature.
- ISymbolVariable[] GetParameters();
-
- // Get the namespace that this method is defined within.
- ISymbolNamespace GetNamespace();
-
- // Get the start/end document positions for the source of this
- // method. The first array position is the start while the second
- // is the end. Returns true if positions were defined, false
- // otherwise.
- bool GetSourceStartEnd(ISymbolDocument[] docs,
- int[] lines,
- int[] columns);
- }
-
-}
+++ /dev/null
-// Licensed to the .NET Foundation under one or more agreements.
-// The .NET Foundation licenses this file to you under the MIT license.
-// See the LICENSE file in the project root for more information.
-
-/*============================================================
-**
-**
-**
-** Represents a namespace within a symbol reader.
-**
-**
-===========================================================*/
-namespace System.Diagnostics.SymbolStore {
-
- using System;
-
- // Interface does not need to be marked with the serializable attribute
-[System.Runtime.InteropServices.ComVisible(true)]
- public interface ISymbolNamespace
- {
- // Get the name of this namespace
- String Name { get; }
-
- // Get the children of this namespace
- ISymbolNamespace[] GetNamespaces();
-
- // Get the variables in this namespace
- ISymbolVariable[] GetVariables();
- }
-}
+++ /dev/null
-// Licensed to the .NET Foundation under one or more agreements.
-// The .NET Foundation licenses this file to you under the MIT license.
-// See the LICENSE file in the project root for more information.
-
-/*============================================================
-**
-**
-**
-** Represents a symbol reader for managed code. Provides access to
-** documents, methods, and variables.
-**
-**
-===========================================================*/
-namespace System.Diagnostics.SymbolStore {
- // Interface does not need to be marked with the serializable attribute
- using System;
- using System.Runtime.InteropServices;
-
-
-[System.Runtime.InteropServices.ComVisible(true)]
- public interface ISymbolReader
- {
- // Find a document. Language, vendor, and document type are
- // optional.
- ISymbolDocument GetDocument(String url,
- Guid language,
- Guid languageVendor,
- Guid documentType);
-
- // Return an array of all of the documents defined in the symbol
- // store.
- ISymbolDocument[] GetDocuments();
-
- // Return the method that was specified as the user entry point
- // for the module, if any. This would be, perhaps, the user's main
- // method rather than compiler generated stubs before main.
- SymbolToken UserEntryPoint { get; }
-
- // Get a symbol reader method given the id of a method.
- ISymbolMethod GetMethod(SymbolToken method);
-
- // Get a symbol reader method given the id of a method and an E&C
- // version number. Version numbers start a 1 and are incremented
- // each time the method is changed due to an E&C operation.
- ISymbolMethod GetMethod(SymbolToken method, int version);
-
- // Return a non-local variable given its parent and name.
- ISymbolVariable[] GetVariables(SymbolToken parent);
-
- // Return a non-local variable given its parent and name.
- ISymbolVariable[] GetGlobalVariables();
-
- // Given a position in a document, return the ISymbolMethod that
- // contains that position.
- ISymbolMethod GetMethodFromDocumentPosition(ISymbolDocument document,
- int line,
- int column);
-
- // Gets a custom attribute based upon its name. Not to be
- // confused with Metadata custom attributes, these attributes are
- // held in the symbol store.
- byte[] GetSymAttribute(SymbolToken parent, String name);
-
- // Get the namespaces defined at global scope within this symbol store.
- ISymbolNamespace[] GetNamespaces();
- }
-
-}
+++ /dev/null
-// Licensed to the .NET Foundation under one or more agreements.
-// The .NET Foundation licenses this file to you under the MIT license.
-// See the LICENSE file in the project root for more information.
-
-/*============================================================
-**
-**
-**
-** Represents a lexical scope within a ISymbolMethod. Provides access to
-** the start and end offsets of the scope, as well as its child and
-** parent scopes. Also provides access to all the locals defined
-** within this scope.
-**
-**
-===========================================================*/
-namespace System.Diagnostics.SymbolStore {
- // Interface does not need to be marked with the serializable attribute
- using System;
- using System.Text;
- using System.Runtime.InteropServices;
-
-[System.Runtime.InteropServices.ComVisible(true)]
- public interface ISymbolScope
- {
- // Get the method that contains this scope.
- ISymbolMethod Method { get; }
-
- // Get the parent scope of this scope.
- ISymbolScope Parent { get; }
-
- // Get any child scopes of this scope.
- ISymbolScope[] GetChildren();
-
- // Get the start and end offsets for this scope.
- int StartOffset { get; }
- int EndOffset { get; }
-
- // Get the locals within this scope. They are returned in no
- // particular order. Note: if a local variable changes its address
- // within this scope then that variable will be returned multiple
- // times, each with a different offset range.
- ISymbolVariable[] GetLocals();
-
- // Get the namespaces that are being "used" within this scope.
- ISymbolNamespace[] GetNamespaces();
- }
-}
+++ /dev/null
-// Licensed to the .NET Foundation under one or more agreements.
-// The .NET Foundation licenses this file to you under the MIT license.
-// See the LICENSE file in the project root for more information.
-
-/*============================================================
-**
-**
-**
-** Represents a variable within a symbol store. This could be a
-** parameter, local variable, or some other non-local variable.
-**
-**
-===========================================================*/
-namespace System.Diagnostics.SymbolStore {
- // Interface does not need to be marked with the serializable attribute
- using System;
-
-[System.Runtime.InteropServices.ComVisible(true)]
- public interface ISymbolVariable
- {
- // Get the name of this variable.
- String Name { get; }
-
- // Get the attributes of this variable.
- Object Attributes { get; }
-
- // Get the signature of this variable.
- byte[] GetSignature();
-
- SymAddressKind AddressKind { get; }
- int AddressField1 { get; }
- int AddressField2 { get; }
- int AddressField3 { get; }
-
- // Get the start/end offsets of this variable within its
- // parent. If this is a local variable within a scope, these will
- // fall within the offsets defined for the scope.
- int StartOffset { get; }
- int EndOffset { get; }
- }
-}
+++ /dev/null
-// Licensed to the .NET Foundation under one or more agreements.
-// The .NET Foundation licenses this file to you under the MIT license.
-// See the LICENSE file in the project root for more information.
-
-/*============================================================
-**
-**
-**
-[System.Runtime.InteropServices.ComVisible(true)]
-** A class to hold public guids for document types to be used with the
-** symbol store.
-**
-**
-===========================================================*/
-namespace System.Diagnostics.SymbolStore {
- // Only statics does not need to be marked with the serializable attribute
- using System;
-
-[System.Runtime.InteropServices.ComVisible(true)]
- public class SymDocumentType
- {
- public static readonly Guid Text = new Guid(0x5a869d0b, 0x6611, 0x11d3, 0xbd, 0x2a, 0x0, 0x0, 0xf8, 0x8, 0x49, 0xbd);
- }
-}
+++ /dev/null
-// Licensed to the .NET Foundation under one or more agreements.
-// The .NET Foundation licenses this file to you under the MIT license.
-// See the LICENSE file in the project root for more information.
-
-/*============================================================
-**
-**
-**
-[System.Runtime.InteropServices.ComVisible(true)]
-** A class to hold public guids for languages types.
-**
-**
-===========================================================*/
-namespace System.Diagnostics.SymbolStore {
- // Only statics, does not need to be marked with the serializable attribute
- using System;
-
-[System.Runtime.InteropServices.ComVisible(true)]
- public class SymLanguageType
- {
- public static readonly Guid C = new Guid(0x63a08714, unchecked((short) 0xfc37), 0x11d2, 0x90, 0x4c, 0x0, 0xc0, 0x4f, 0xa3, 0x02, 0xa1);
- public static readonly Guid CPlusPlus = new Guid(0x3a12d0b7, unchecked((short)0xc26c), 0x11d0, 0xb4, 0x42, 0x0, 0xa0, 0x24, 0x4a, 0x1d, 0xd2);
-
- public static readonly Guid CSharp = new Guid(0x3f5162f8, unchecked((short)0x07c6), 0x11d3, 0x90, 0x53, 0x0, 0xc0, 0x4f, 0xa3, 0x02, 0xa1);
-
- public static readonly Guid Basic = new Guid(0x3a12d0b8, unchecked((short)0xc26c), 0x11d0, 0xb4, 0x42, 0x0, 0xa0, 0x24, 0x4a, 0x1d, 0xd2);
-
- public static readonly Guid Java = new Guid(0x3a12d0b4, unchecked((short)0xc26c), 0x11d0, 0xb4, 0x42, 0x0, 0xa0, 0x24, 0x4a, 0x1d, 0xd2);
-
- public static readonly Guid Cobol = new Guid(unchecked((int)0xaf046cd1), unchecked((short)0xd0e1), 0x11d2, 0x97, 0x7c, 0x0, 0xa0, 0xc9, 0xb4, 0xd5, 0xc);
-
- public static readonly Guid Pascal = new Guid(unchecked((int)0xaf046cd2), unchecked((short) 0xd0e1), 0x11d2, 0x97, 0x7c, 0x0, 0xa0, 0xc9, 0xb4, 0xd5, 0xc);
-
- public static readonly Guid ILAssembly = new Guid(unchecked((int)0xaf046cd3), unchecked((short)0xd0e1), 0x11d2, 0x97, 0x7c, 0x0, 0xa0, 0xc9, 0xb4, 0xd5, 0xc);
-
- public static readonly Guid JScript = new Guid(0x3a12d0b6, unchecked((short)0xc26c), 0x11d0, 0xb4, 0x42, 0x00, 0xa0, 0x24, 0x4a, 0x1d, 0xd2);
-
- public static readonly Guid SMC = new Guid(unchecked((int)0xd9b9f7b), 0x6611, unchecked((short)0x11d3), 0xbd, 0x2a, 0x0, 0x0, 0xf8, 0x8, 0x49, 0xbd);
-
- public static readonly Guid MCPlusPlus = new Guid(0x4b35fde8, unchecked((short)0x07c6), 0x11d3, 0x90, 0x53, 0x0, 0xc0, 0x4f, 0xa3, 0x02, 0xa1);
- }
-}
+++ /dev/null
-// Licensed to the .NET Foundation under one or more agreements.
-// The .NET Foundation licenses this file to you under the MIT license.
-// See the LICENSE file in the project root for more information.
-
-/*============================================================
-**
-**
-**
-[System.Runtime.InteropServices.ComVisible(true)]
-** A class to hold public guids for language vendors.
-**
-**
-===========================================================*/
-namespace System.Diagnostics.SymbolStore {
- // Only statics, does not need to be marked with the serializable attribute
- using System;
-
-[System.Runtime.InteropServices.ComVisible(true)]
- public class SymLanguageVendor
- {
- public static readonly Guid Microsoft = new Guid(unchecked((int)0x994b45c4), unchecked((short) 0xe6e9), 0x11d2, 0x90, 0x3f, 0x00, 0xc0, 0x4f, 0xa3, 0x02, 0xa1);
- }
-}