Microsoft.Diagnostics.NETCore.Client API

Ez a szakasz a diagnosztikai ügyfélkódtár API-jait ismerteti.

DiagnosticsClient osztály

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();
}

Konstruktor

public DiagnosticsClient(int processId);

Létrehoz egy új példányt DiagnosticsClient egy olyan kompatibilis .NET-folyamathoz, amely a következő folyamatazonosítóval processIdfut: .

processID : A célalkalmazás folyamatazonosítója.

StartEventPipeSession metódusok

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);

Elindít egy EventPipe nyomkövetési munkamenetet a megadott szolgáltatók és beállítások használatával.

  • providers : An IEnumerable of EventPipeProviders to start tracing.
  • requestRundown: Meg bool kell adni, hogy a lefuttatásszolgáltató eseményeit a célalkalmazás futtatókörnyezetéből kell-e kérni.
  • circularBufferMB: A int célalkalmazás futásideje által az események gyűjtéséhez használt körkörös puffer teljes méretét adja meg.
  • token (az Async túlterhelése esetén): A lemondási kérelmek figyelésére szolgáló jogkivonat.
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 : A EventPipeProvider nyomkövetés indításához.
  • requestRundown: Meg bool kell adni, hogy a lefuttatásszolgáltató eseményeit a célalkalmazás futtatókörnyezetéből kell-e kérni.
  • circularBufferMB: A int célalkalmazás futásideje által az események gyűjtéséhez használt körkörös puffer teljes méretét adja meg.
  • token (az Async túlterhelése esetén): A lemondási kérelmek figyelésére szolgáló jogkivonat.

Megjegyzés:

A lefuttatási események olyan hasznos adatokat tartalmaznak, amelyekre az elemzés után szükség lehet, például a szálminták metódusneveinek feloldására. Hacsak nem tudja, hogy ezt nem szeretné, javasoljuk requestRundown , hogy igaz legyen. Nagy alkalmazásokban ez eltarthat egy ideig.

WriteDump metódus

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

Kérjen memóriaképet a célalkalmazás post mortem hibakereséséhez. A memóriakép típusa az DumpType enumerálással adható meg.

  • dumpType : A kérendő memóriakép típusa.
  • dumpPath : A kiírandó memóriakép elérési útja.
  • logDumpGeneration : Ha be van trueállítva, a célalkalmazás diagnosztikai naplókat ír ki a memóriakép létrehozása során.
public void WriteDump(DumpType dumpType, string dumpPath, WriteDumpFlags flags)

Kérjen memóriaképet a célalkalmazás post mortem hibakereséséhez. A memóriakép típusa az DumpType enumerálással adható meg.

  • dumpType : A kérendő memóriakép típusa.
  • dumpPath : A kiírandó memóriakép elérési útja.
  • flags : naplózási és összeomlási jelentésjelzők. A 6.0-nál kisebb futtatókörnyezetekben csak a LoggingEnabled támogatott.
public async Task WriteDumpAsync(DumpType dumpType, string dumpPath, bool logDumpGeneration, CancellationToken token)

Kérjen memóriaképet a célalkalmazás post mortem hibakereséséhez. A memóriakép típusa az DumpType enumerálással adható meg.

  • dumpType : A kérendő memóriakép típusa.
  • dumpPath : A kiírandó memóriakép elérési útja.
  • logDumpGeneration : Ha be van trueállítva, a célalkalmazás diagnosztikai naplókat ír ki a memóriakép létrehozása során.
  • token : A lemondási kérelmek figyelésére szolgáló jogkivonat.
public async Task WriteDumpAsync(DumpType dumpType, string dumpPath, WriteDumpFlags flags, CancellationToken token)

Kérjen memóriaképet a célalkalmazás post mortem hibakereséséhez. A memóriakép típusa az DumpType enumerálással adható meg.

  • dumpType : A kérendő memóriakép típusa.
  • dumpPath : A kiírandó memóriakép elérési útja.
  • flags : naplózási és összeomlási jelentésjelzők. A 6.0-nál kisebb futtatókörnyezetekben csak a LoggingEnabled támogatott.
  • token : A lemondási kérelmek figyelésére szolgáló jogkivonat.

AttachProfiler metódus

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

ICorProfiler célalkalmazáshoz való csatolásának kérése.

  • attachTimeout : Ez TimeSpan után a csatolás megszakad.
  • profilerGuid : Guid a csatolandó ICorProfilerből.
  • profilerPath : A csatolandó ICorProfiler dll elérési útja.
  • additionalData : Választható további adatok, amelyek továbbíthatók a futtatókörnyezetnek a profiler csatolása során.

SetStartupProfiler metódus

public void SetStartupProfiler(
        Guid profilerGuid,
        string profilerPath);

Állítson be egy profilozót indítási profilozóként. Csak akkor lehet kiadni ezt a parancsot, ha a futtatókörnyezet indításkor szünetel.

  • profilerGuid : Guid a profilkészítő csatolandó.
  • profilerPath : A csatolandó profilkészítő elérési útja.

ResumeRuntime metódus

public void ResumeRuntime();

Kérje meg a futtatókörnyezetet, hogy folytassa a végrehajtást, miután az indításkor szüneteltették.

SetEnvironmentVariable metódus

public void SetEnvironmentVariable(
    string name,
    string value);

Állítson be egy környezeti változót a célfolyamatban.

  • name : A beállítandó környezeti változó neve.
  • value : A beállítandó környezeti változó értéke.

GetProcessEnvironment

public Dictionary<string, string> GetProcessEnvironment()

Lekéri az összes környezeti változót és azok értékeit a célfolyamatból.

GetPublishedProcesses metódus

public static IEnumerable<int> GetPublishedProcesses();

IEnumerable Szerezze be az összes olyan aktív .NET-folyamat folyamatazonosítóit, amelyekhez csatolható.

EventPipeProvider osztály

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

Konstruktor

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

Létrehoz egy új példányt EventPipeProvider a megadott szolgáltatónévvel, EventLevelkulcsszavakkal és argumentumokkal.

Név tulajdonság

public string Name { get; }

Lekéri a szolgáltató nevét.

EventLevel tulajdonság

public EventLevel EventLevel { get; }

Lekéri a EventLevel megadott példányt.EventPipeProvider

Kulcsszavak tulajdonság

public long Keywords { get; }

Olyan értéket kap, amely bitmaszkot jelöl a EventSourcekulcsszavakhoz.

Argumentumok tulajdonság

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

Lekéri azokat a kulcs-érték pár sztringeket IDictionary , amelyek nem kötelező argumentumokat adnak át EventSource az adott EventPipeProviderértéknek.

Remarks

Ez az osztály nem módosítható, mert az EventPipe nem teszi lehetővé a szolgáltató konfigurációjának módosítását egy EventPipe-munkamenet során a .NET Core 3.1-es verziójától.

EventPipeSession osztály

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

Ez az osztály egy folyamatban lévő EventPipe-munkamenetet jelöl. Ez nem módosítható, és az adott futtatókörnyezet EventPipe-munkamenetének leírójaként működik.

EventStream tulajdonság

public Stream EventStream { get; }

Stream Lekéri az eseménystream olvasásához használható adatokat.

Leállítási módszer

public void Stop();

Leállítja az adott EventPipe munkamenetet.

DumpType enumerálás

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

A kérhető memóriakép típusát jelöli.

  • Normal: Csak azokat az információkat adja meg, amely a folyamat összes meglévő szálának összes meglévő nyomkövetéséhez szükséges. Korlátozott GC halommemória és információ.
  • WithHeap: Tartalmazza a folyamat összes meglévő szálának veremnyomainak rögzítéséhez szükséges GC-halomokat és információkat.
  • Triage: Csak azokat az információkat adja meg, amely a folyamat összes meglévő szálának összes meglévő nyomkövetéséhez szükséges. Korlátozott GC halommemória és információ.
  • Full: Az összes akadálymentes memória belefoglalása a folyamatba. A rendszer a nyers memóriaadatokat a végén tartalmazza, így a kezdeti struktúrák közvetlenül leképezhetők a nyers memória információi nélkül. Ez a beállítás nagyon nagy memóriaképfájlt eredményezhet.

Kivételek

A kódtárból kidobott kivételek típusa DiagnosticsClientException vagy származtatott típusa.

public class DiagnosticsClientException : Exception

Nem támogatottCommandException

public class UnsupportedCommandException : DiagnosticsClientException

Ez akkor jelenhet meg, ha a parancsot sem a tár, sem a célfolyamat futtatókörnyezete nem támogatja.

Nem támogatottProtocolException

public class UnsupportedProtocolException : DiagnosticsClientException

Ez akkor fordulhat elő, ha a célfolyamat futtatókörnyezete nem kompatibilis a kódtár által használt diagnosztikai IPC protokollal.

ServerNotAvailableException

public class ServerNotAvailableException : DiagnosticsClientException

Ez akkor fordulhat elő, ha a futtatókörnyezet nem érhető el diagnosztikai IPC-parancsokhoz, például korai futásidejű indításkor, mielőtt a futtatókörnyezet készen áll a diagnosztikai parancsokra, vagy amikor a futtatókörnyezet leáll.

ServerErrorException

public class ServerErrorException : DiagnosticsClientException

Ez akkor jelenhet meg, ha a futtatókörnyezet hibával válaszol egy adott parancsra.