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
: EenIEnumerable
vanEventPipeProvider
de s om tracering te starten.requestRundown
: Erbool
moet worden opgegeven of uitvoeringsprovider-gebeurtenissen uit de runtime van de doel-app moeten worden aangevraagd.circularBufferMB
: Eenint
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
: EenEventPipeProvider
om tracering te starten.requestRundown
: Erbool
moet worden opgegeven of uitvoeringsprovider-gebeurtenissen uit de runtime van de doel-app moeten worden aangevraagd.circularBufferMB
: Eenint
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 optrue
, 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 optrue
, 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
: ATimeSpan
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 EventPipeProvider
waarde.
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. Sommige inhoud die mogelijk gevoelige informatie bevat, zoals volledige modulepaden, wordt redacted. Hoewel dit bedoeld is om sommige gevallen van blootstelling aan gevoelige gegevens te beperken, is er geen garantie dat deze redaction-functie zelf voldoende is om te voldoen aan een bepaalde wet of norm met betrekking tot gegevensprivacy.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.