Microsoft.Diagnostics.NETCore.Client-API

In deze sectie worden de API's van de diagnostische clientbibliotheek beschreven.

DiagnosticsClient-klasse

public DiagnosticsClient
{
    public DiagnosticsClient(int processId);

    public EventPipeSession StartEventPipeSession(
        IEnumerable<EventPipeProvider> providers,
        bool requestRundown = true,
        int circularBufferMB = 256);

    public Task<EventPipeSession> StartEventPipeSessionAsync(
        IEnumerable<EventPipeProvider> providers,
        bool requestRundown,
        int circularBufferMB = 256,
        CancellationToken token = default);

    public void WriteDump(
        DumpType dumpType,
        string dumpPath,
        bool logDumpGeneration = false);

    public async Task WriteDumpAsync(
        DumpType dumpType,
        string dumpPath,
        bool logDumpGeneration,
        CancellationToken token);

    public void AttachProfiler(
        TimeSpan attachTimeout,
        Guid profilerGuid,
        string profilerPath,
        byte[] additionalData = null);

    public void SetStartupProfiler(
        Guid profilerGuid,
        string profilerPath);

    public void ResumeRuntime();

    public void SetEnvironmentVariable(
        string name,
        string value);

    public Dictionary<string, string> GetProcessEnvironment();

    public static IEnumerable<int> GetPublishedProcesses();
}

Constructor

public DiagnosticsClient(int processId);

Hiermee maakt u een nieuw exemplaar van DiagnosticsClient een compatibel .NET-proces dat wordt uitgevoerd met de proces-id van processId.

processID : proces-id van de doeltoepassing.

StartEventPipeSession-methoden

public EventPipeSession StartEventPipeSession(
    IEnumerable<EventPipeProvider> providers,
    bool requestRundown = true,
    int circularBufferMB = 256);
public Task<EventPipeSession> StartEventPipeSessionAsync(
    IEnumerable<EventPipeProvider> providers,
    bool requestRundown,
    int circularBufferMB = 256,
    CancellationToken token = default);

Start een EventPipe-traceringssessie met behulp van de opgegeven providers en instellingen.

  • providers : Een IEnumerable van EventPipeProviderde s om tracering te starten.
  • requestRundown: Er bool moet worden opgegeven of uitvoeringsprovider-gebeurtenissen uit de runtime van de doel-app moeten worden aangevraagd.
  • circularBufferMB: Een int aanduiding voor de totale grootte van de circulaire buffer die wordt gebruikt door de runtime van de doel-app voor het verzamelen van gebeurtenissen.
  • token (voor de Async-overbelasting): het token dat moet worden gecontroleerd op annuleringsaanvragen.
public EventPipeSession StartEventPipeSession(EventPipeProvider provider, bool requestRundown = true, int circularBufferMB = 256)
public Task<EventPipeSession> StartEventPipeSessionAsync(EventPipeProvider provider, bool requestRundown, int circularBufferMB = 256, CancellationToken token = default)
  • provider : Een EventPipeProvider om tracering te starten.
  • requestRundown: Er bool moet worden opgegeven of uitvoeringsprovider-gebeurtenissen uit de runtime van de doel-app moeten worden aangevraagd.
  • circularBufferMB: Een int aanduiding voor de totale grootte van de circulaire buffer die wordt gebruikt door de runtime van de doel-app voor het verzamelen van gebeurtenissen.
  • token (voor de Async-overbelasting): het token dat moet worden gecontroleerd op annuleringsaanvragen.

Notitie

Rundown-gebeurtenissen bevatten nettoladingen die mogelijk nodig zijn voor postanalyse, zoals het omzetten van methodenamen van threadsamples. Tenzij u weet dat u dit niet wilt, raden we u aan waar in te stellen requestRundown . In grote toepassingen kan dit enige tijd duren.

Methode WriteDump

public void WriteDump(
    DumpType dumpType,
    string dumpPath,
    bool logDumpGeneration=false);

Vraag een dump aan voor post-mortem-foutopsporing van de doeltoepassing. Het type dump kan worden opgegeven met behulp van de DumpType enum.

  • dumpType : Type dump dat moet worden aangevraagd.
  • dumpPath : het pad naar de dump die moet worden weggeschreven naar.
  • logDumpGeneration : Indien ingesteld op true, schrijft de doeltoepassing diagnostische logboeken uit tijdens het genereren van dumps.
public void WriteDump(DumpType dumpType, string dumpPath, WriteDumpFlags flags)

Vraag een dump aan voor post-mortem-foutopsporing van de doeltoepassing. Het type dump kan worden opgegeven met behulp van de DumpType enum.

  • dumpType : Type dump dat moet worden aangevraagd.
  • dumpPath : het pad naar de dump die moet worden weggeschreven naar.
  • flags : logboekregistratie- en crashrapportvlagmen. In runtimes minder dan 6.0 wordt alleen LoggingEnabled ondersteund.
public async Task WriteDumpAsync(DumpType dumpType, string dumpPath, bool logDumpGeneration, CancellationToken token)

Vraag een dump aan voor post-mortem-foutopsporing van de doeltoepassing. Het type dump kan worden opgegeven met behulp van de DumpType enum.

  • dumpType : Type dump dat moet worden aangevraagd.
  • dumpPath : het pad naar de dump die moet worden weggeschreven naar.
  • logDumpGeneration : Indien ingesteld op true, schrijft de doeltoepassing diagnostische logboeken uit tijdens het genereren van dumps.
  • token : Het token dat moet worden gecontroleerd op annuleringsaanvragen.
public async Task WriteDumpAsync(DumpType dumpType, string dumpPath, WriteDumpFlags flags, CancellationToken token)

Vraag een dump aan voor post-mortem-foutopsporing van de doeltoepassing. Het type dump kan worden opgegeven met behulp van de DumpType enum.

  • dumpType : Type dump dat moet worden aangevraagd.
  • dumpPath : het pad naar de dump die moet worden weggeschreven naar.
  • flags : logboekregistratie- en crashrapportvlagmen. In runtimes minder dan 6.0 wordt alleen LoggingEnabled ondersteund.
  • token : Het token dat moet worden gecontroleerd op annuleringsaanvragen.

Methode AttachProfiler

public void AttachProfiler(
    TimeSpan attachTimeout,
    Guid profilerGuid,
    string profilerPath,
    byte[] additionalData=null);

Aanvraag voor het koppelen van een ICorProfiler aan de doeltoepassing.

  • attachTimeout : A TimeSpan waarna de bijlage wordt afgebroken.
  • profilerGuid : Guid van de ICorProfiler die moet worden bijgevoegd.
  • profilerPath : Pad naar de ICorProfiler-dll die moet worden gekoppeld.
  • additionalData : Optionele aanvullende gegevens die kunnen worden doorgegeven aan de runtime tijdens het koppelen van de profiler.

Methode SetStartupProfiler

public void SetStartupProfiler(
        Guid profilerGuid,
        string profilerPath);

Stel een profiler in als de opstartprofiler. Het is alleen geldig om deze opdracht uit te geven terwijl de runtime tijdens het opstarten wordt onderbroken.

  • profilerGuid : Guid om de profiler te koppelen.
  • profilerPath : Pad naar de profiler die moet worden gekoppeld.

Methode ResumeRuntime

public void ResumeRuntime();

Laat de runtime de uitvoering hervatten nadat deze is onderbroken bij het opstarten.

Methode SetEnvironmentVariable

public void SetEnvironmentVariable(
    string name,
    string value);

Stel een omgevingsvariabele in het doelproces in.

  • name : de naam van de omgevingsvariabele die moet worden ingesteld.
  • value : De waarde van de omgevingsvariabele die moet worden ingesteld.

GetProcessEnvironment

public Dictionary<string, string> GetProcessEnvironment()

Haalt alle omgevingsvariabelen en de bijbehorende waarden op uit het doelproces.

Methode GetPublishedProcesses

public static IEnumerable<int> GetPublishedProcesses();

Haal een IEnumerable aantal proces-id's op van alle actieve .NET-processen waaraan kan worden gekoppeld.

EventPipeProvider-klasse

public class EventPipeProvider
{
    public EventPipeProvider(
        string name,
        EventLevel eventLevel,
        long keywords = 0,
        IDictionary<string, string> arguments = null)

    public string Name { get; }

    public EventLevel EventLevel { get; }

    public long Keywords { get; }

    public IDictionary<string, string> Arguments { get; }

    public override string ToString();

    public override bool Equals(object obj);

    public override int GetHashCode();

    public static bool operator ==(Provider left, Provider right);

    public static bool operator !=(Provider left, Provider right);
}

Constructor

public EventPipeProvider(
    string name,
    EventLevel eventLevel,
    long keywords = 0,
    IDictionary<string, string> arguments = null)

Hiermee maakt u een nieuw exemplaar van EventPipeProvider met de opgegeven providernaam, EventLeveltrefwoorden en argumenten.

Naameigenschap

public string Name { get; }

Hiermee haalt u de naam van de provider op.

EventLevel-eigenschap

public EventLevel EventLevel { get; }

Hiermee wordt de EventLevel opgegeven instantie van EventPipeProvider.

Eigenschap Trefwoorden

public long Keywords { get; }

Hiermee wordt een waarde opgehaald die bitmasker vertegenwoordigt voor trefwoorden van de EventSource.

Eigenschap Argumenten

public IDictionary<string, string> Arguments { get; }

Hiermee haalt u een IDictionary tekenreeks met sleutel-waardeparen op die optionele argumenten vertegenwoordigen die moeten worden doorgegeven aan EventSource de opgegeven EventPipeProviderwaarde.

Opmerkingen

Deze klasse is onveranderbaar, omdat EventPipe niet toestaat dat de configuratie van een provider wordt gewijzigd tijdens een EventPipe-sessie vanaf .NET Core 3.1.

EventPipeSession-klasse

public class EventPipeSession : IDisposable
{
    public Stream EventStream { get; }
    public void Stop();
}

Deze klasse vertegenwoordigt een doorlopende EventPipe-sessie. Het is onveranderbaar en fungeert als een ingang voor een EventPipe-sessie van de opgegeven runtime.

EventStream-eigenschap

public Stream EventStream { get; }

Hiermee haalt u een Stream op die kan worden gebruikt om de gebeurtenisstroom te lezen.

Stopmethode

public void Stop();

Stopt de opgegeven EventPipe sessie.

DumpType enum

public enum DumpType
{
    Normal = 1,
    WithHeap = 2,
    Triage = 3,
    Full = 4
}

Vertegenwoordigt het type dump dat kan worden aangevraagd.

  • Normal: Neem alleen de informatie op die nodig is om stacktraceringen vast te leggen voor alle bestaande traceringen voor alle bestaande threads in een proces. Beperkt geheugen en informatie van de GC-heap.
  • WithHeap: Bevat de GC-heaps en informatie die nodig is voor het vastleggen van stacktraceringen voor alle bestaande threads in een proces.
  • Triage: Neem alleen de informatie op die nodig is om stacktraceringen vast te leggen voor alle bestaande traceringen voor alle bestaande threads in een proces. Beperkt geheugen en informatie van de GC-heap.
  • Full: Neem alle toegankelijke geheugen in het proces op. De onbewerkte geheugengegevens worden aan het einde opgenomen, zodat de initiĆ«le structuren rechtstreeks kunnen worden toegewezen zonder de onbewerkte geheugengegevens. Deze optie kan resulteren in een zeer groot dumpbestand.

Uitzonderingen

Uitzonderingen die uit de bibliotheek worden gegenereerd, zijn van het type DiagnosticsClientException of een afgeleid type.

public class DiagnosticsClientException : Exception

Niet-ondersteundeCommandException

public class UnsupportedCommandException : DiagnosticsClientException

Dit kan optreden wanneer de opdracht niet wordt ondersteund door de bibliotheek of de runtime van het doelproces.

UnsupportedProtocolException

public class UnsupportedProtocolException : DiagnosticsClientException

Dit kan optreden wanneer de runtime van het doelproces niet compatibel is met het diagnostische IPC-protocol dat door de bibliotheek wordt gebruikt.

ServerNotAvailableException

public class ServerNotAvailableException : DiagnosticsClientException

Dit kan optreden wanneer de runtime niet beschikbaar is voor diagnostische IPC-opdrachten, zoals vroeg tijdens het opstarten van de runtime voordat de runtime gereed is voor diagnostische opdrachten of wanneer de runtime wordt afgesloten.

ServerErrorException

public class ServerErrorException : DiagnosticsClientException

Dit kan optreden wanneer de runtime reageert met een fout bij een bepaalde opdracht.