File: Contracts\IDebugger.cs
Web Access
Project: src\src\runtime\src\native\managed\cdac\Microsoft.Diagnostics.DataContractReader.Abstractions\Microsoft.Diagnostics.DataContractReader.Abstractions.csproj (Microsoft.Diagnostics.DataContractReader.Abstractions)
// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the MIT license.

using System;

namespace Microsoft.Diagnostics.DataContractReader.Contracts;

public record struct DebuggerData(bool IsLeftSideInitialized, uint DefinesBitField, uint MDStructuresVersion);

public interface IDebugger : IContract
{
    static string IContract.Name { get; } = nameof(Debugger);

    bool TryGetDebuggerData(out DebuggerData data) => throw new NotImplementedException();
    int GetAttachStateFlags() => throw new NotImplementedException();
    void MarkDebuggerAttachPending() => throw new NotImplementedException();
    void MarkDebuggerAttached(bool fAttached) => throw new NotImplementedException();
    bool MetadataUpdatesApplied() => throw new NotImplementedException();
    void RequestSyncAtEvent() => throw new NotImplementedException();
    void SetSendExceptionsOutsideOfJMC(bool sendExceptionsOutsideOfJMC) => throw new NotImplementedException();
    TargetPointer GetDebuggerControlBlockAddress() => throw new NotImplementedException();
    void EnableGCNotificationEvents(bool fEnable) => throw new NotImplementedException();
}

public readonly struct Debugger : IDebugger
{
    // Everything throws NotImplementedException
}