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 processId
fut: .
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
: AnIEnumerable
ofEventPipeProvider
s to start tracing.requestRundown
: Megbool
kell adni, hogy a lefuttatásszolgáltató eseményeit a célalkalmazás futtatókörnyezetéből kell-e kérni.circularBufferMB
: Aint
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
: AEventPipeProvider
nyomkövetés indításához.requestRundown
: Megbool
kell adni, hogy a lefuttatásszolgáltató eseményeit a célalkalmazás futtatókörnyezetéből kell-e kérni.circularBufferMB
: Aint
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 vantrue
á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 vantrue
á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
: EzTimeSpan
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 EventSource
kulcsszavakhoz.
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.
Visszajelzés
https://aka.ms/ContentUserFeedback.
Hamarosan elérhető: 2024-ben fokozatosan kivezetjük a GitHub-problémákat a tartalom visszajelzési mechanizmusaként, és lecseréljük egy új visszajelzési rendszerre. További információ:Visszajelzés küldése és megtekintése a következőhöz: