1 // Licensed to the .NET Foundation under one or more agreements.
2 // The .NET Foundation licenses this file to you under the MIT license.
3 // See the LICENSE file in the project root for more information.
6 using System.Collections.Generic;
8 namespace Mono.Profiler.Log {
10 public sealed class AppDomainLoadEvent : LogEvent {
12 public long AppDomainId { get; internal set; }
14 internal override void Accept (LogEventVisitor visitor)
20 public sealed class AppDomainUnloadEvent : LogEvent {
22 public long AppDomainId { get; internal set; }
24 internal override void Accept (LogEventVisitor visitor)
30 public sealed class AppDomainNameEvent : LogEvent {
32 public long AppDomainId { get; internal set; }
34 public string Name { get; internal set; }
36 internal override void Accept (LogEventVisitor visitor)
42 public sealed class ContextLoadEvent : LogEvent {
44 public long ContextId { get; internal set; }
46 public long AppDomainId { get; internal set; }
48 internal override void Accept (LogEventVisitor visitor)
54 public sealed class ContextUnloadEvent : LogEvent {
56 public long ContextId { get; internal set; }
58 public long AppDomainId { get; internal set; }
60 internal override void Accept (LogEventVisitor visitor)
66 public sealed class ThreadStartEvent : LogEvent {
68 public long ThreadId { get; internal set; }
70 internal override void Accept (LogEventVisitor visitor)
76 public sealed class ThreadEndEvent : LogEvent {
78 public long ThreadId { get; internal set; }
80 internal override void Accept (LogEventVisitor visitor)
86 public sealed class ThreadNameEvent : LogEvent {
88 public long ThreadId { get; internal set; }
90 public string Name { get; internal set; }
92 internal override void Accept (LogEventVisitor visitor)
98 public sealed class ImageLoadEvent : LogEvent {
100 public long ImagePointer { get; internal set; }
102 public string Name { get; internal set; }
104 internal override void Accept (LogEventVisitor visitor)
106 visitor.Visit (this);
110 public sealed class ImageUnloadEvent : LogEvent {
112 public long ImagePointer { get; internal set; }
114 public string Name { get; internal set; }
116 internal override void Accept (LogEventVisitor visitor)
118 visitor.Visit (this);
122 public sealed class AssemblyLoadEvent : LogEvent {
124 public long AssemblyPointer { get; internal set; }
126 public long ImagePointer { get; internal set; }
128 public string Name { get; internal set; }
130 internal override void Accept (LogEventVisitor visitor)
132 visitor.Visit (this);
136 public sealed class AssemblyUnloadEvent : LogEvent {
138 public long AssemblyPointer { get; internal set; }
140 public long ImagePointer { get; internal set; }
142 public string Name { get; internal set; }
144 internal override void Accept (LogEventVisitor visitor)
146 visitor.Visit (this);
150 public sealed class ClassLoadEvent : LogEvent {
152 public long ClassPointer { get; internal set; }
154 public long ImagePointer { get; internal set; }
156 public string Name { get; internal set; }
158 internal override void Accept (LogEventVisitor visitor)
160 visitor.Visit (this);
164 public sealed class JitEvent : LogEvent {
166 public long MethodPointer { get; internal set; }
168 public long CodePointer { get; internal set; }
170 public long CodeSize { get; internal set; }
172 public string Name { get; internal set; }
174 internal override void Accept (LogEventVisitor visitor)
176 visitor.Visit (this);
180 public sealed class JitHelperEvent : LogEvent {
182 public LogJitHelper Type { get; internal set; }
184 public long BufferPointer { get; internal set; }
186 public long BufferSize { get; internal set; }
188 public string Name { get; internal set; }
190 internal override void Accept (LogEventVisitor visitor)
192 visitor.Visit (this);
196 public sealed class AllocationEvent : LogEvent {
198 public long ClassPointer { get; internal set; }
200 public long ObjectPointer { get; internal set; }
202 public long ObjectSize { get; internal set; }
204 public IReadOnlyList<long> Backtrace { get; internal set; }
206 internal override void Accept (LogEventVisitor visitor)
208 visitor.Visit (this);
212 public sealed class HeapBeginEvent : LogEvent {
214 internal override void Accept (LogEventVisitor visitor)
216 visitor.Visit (this);
220 public sealed class HeapEndEvent : LogEvent {
222 internal override void Accept (LogEventVisitor visitor)
224 visitor.Visit (this);
228 public sealed class HeapObjectEvent : LogEvent {
230 public struct HeapObjectReference {
232 public long Offset { get; internal set; }
234 public long ObjectPointer { get; internal set; }
237 public long ObjectPointer { get; internal set; }
239 public long ClassPointer { get; internal set; }
241 public long ObjectSize { get; internal set; }
243 public IReadOnlyList<HeapObjectReference> References { get; internal set; }
245 internal override void Accept (LogEventVisitor visitor)
247 visitor.Visit (this);
251 public sealed class HeapRootsEvent : LogEvent {
253 public struct HeapRoot {
255 public long ObjectPointer { get; internal set; }
257 public LogHeapRootAttributes Attributes { get; internal set; }
259 public long ExtraInfo { get; internal set; }
262 public long MaxGenerationCollectionCount { get; internal set; }
264 public IReadOnlyList<HeapRoot> Roots { get; internal set; }
266 internal override void Accept (LogEventVisitor visitor)
268 visitor.Visit (this);
272 public sealed class GCEvent : LogEvent {
274 public LogGCEvent Type { get; internal set; }
276 public byte Generation { get; internal set; }
278 internal override void Accept (LogEventVisitor visitor)
280 visitor.Visit (this);
284 public sealed class GCResizeEvent : LogEvent {
286 public long NewSize { get; internal set; }
288 internal override void Accept (LogEventVisitor visitor)
290 visitor.Visit (this);
294 public sealed class GCMoveEvent : LogEvent {
296 public IReadOnlyList<long> OldObjectPointers { get; internal set; }
298 public IReadOnlyList<long> NewObjectPointers { get; internal set; }
300 internal override void Accept (LogEventVisitor visitor)
302 visitor.Visit (this);
306 public sealed class GCHandleCreationEvent : LogEvent {
308 public LogGCHandleType Type { get; internal set; }
310 public long Handle { get; internal set; }
312 public long ObjectPointer { get; internal set; }
314 public IReadOnlyList<long> Backtrace { get; internal set; }
316 internal override void Accept (LogEventVisitor visitor)
318 visitor.Visit (this);
322 public sealed class GCHandleDeletionEvent : LogEvent {
324 public LogGCHandleType Type { get; internal set; }
326 public long Handle { get; internal set; }
328 public IReadOnlyList<long> Backtrace { get; internal set; }
330 internal override void Accept (LogEventVisitor visitor)
332 visitor.Visit (this);
336 public sealed class GCFinalizeBeginEvent : LogEvent {
338 internal override void Accept (LogEventVisitor visitor)
340 visitor.Visit (this);
344 public sealed class GCFinalizeEndEvent : LogEvent {
346 internal override void Accept (LogEventVisitor visitor)
348 visitor.Visit (this);
352 public sealed class GCFinalizeObjectBeginEvent : LogEvent {
354 public long ObjectPointer { get; internal set; }
356 internal override void Accept (LogEventVisitor visitor)
358 visitor.Visit (this);
362 public sealed class GCFinalizeObjectEndEvent : LogEvent {
364 public long ObjectPointer { get; internal set; }
366 internal override void Accept (LogEventVisitor visitor)
368 visitor.Visit (this);
372 public sealed class ThrowEvent : LogEvent {
374 public long ObjectPointer { get; internal set; }
376 public IReadOnlyList<long> Backtrace { get; internal set; }
378 internal override void Accept (LogEventVisitor visitor)
380 visitor.Visit (this);
384 public sealed class ExceptionClauseEvent : LogEvent {
386 public LogExceptionClause Type { get; internal set; }
388 public long Index { get; internal set; }
390 public long MethodPointer { get; internal set; }
392 public long ObjectPointer { get; internal set; }
394 internal override void Accept (LogEventVisitor visitor)
396 visitor.Visit (this);
400 public sealed class EnterEvent : LogEvent {
402 public long MethodPointer { get; internal set; }
404 internal override void Accept (LogEventVisitor visitor)
406 visitor.Visit (this);
410 public sealed class LeaveEvent : LogEvent {
412 public long MethodPointer { get; internal set; }
414 internal override void Accept (LogEventVisitor visitor)
416 visitor.Visit (this);
420 public sealed class ExceptionalLeaveEvent : LogEvent {
422 public long MethodPointer { get; internal set; }
424 internal override void Accept (LogEventVisitor visitor)
426 visitor.Visit (this);
430 public sealed class MonitorEvent : LogEvent {
432 public LogMonitorEvent Event { get; internal set; }
434 public long ObjectPointer { get; internal set; }
436 public IReadOnlyList<long> Backtrace { get; internal set; }
438 internal override void Accept (LogEventVisitor visitor)
440 visitor.Visit (this);
444 public sealed class SampleHitEvent : LogEvent {
446 public long ThreadId { get; internal set; }
448 public IReadOnlyList<long> UnmanagedBacktrace { get; internal set; }
450 public IReadOnlyList<long> ManagedBacktrace { get; internal set; }
452 internal override void Accept (LogEventVisitor visitor)
454 visitor.Visit (this);
458 public sealed class CounterSamplesEvent : LogEvent {
460 public struct CounterSample {
462 public long Index { get; internal set; }
464 public LogCounterType Type { get; internal set; }
466 public object Value { get; internal set; }
469 public IReadOnlyList<CounterSample> Samples { get; internal set; }
471 internal override void Accept (LogEventVisitor visitor)
473 visitor.Visit (this);
477 public sealed class CounterDescriptionsEvent : LogEvent {
479 public struct CounterDescription {
481 public LogCounterSection Section { get; internal set; }
483 public string SectionName { get; internal set; }
485 public string CounterName { get; internal set; }
487 public LogCounterType Type { get; internal set; }
489 public LogCounterUnit Unit { get; internal set; }
491 public LogCounterVariance Variance { get; internal set; }
493 public long Index { get; internal set; }
496 public IReadOnlyList<CounterDescription> Descriptions { get; internal set; }
498 internal override void Accept (LogEventVisitor visitor)
500 visitor.Visit (this);
504 public sealed class UnmanagedBinaryEvent : LogEvent {
506 public long SegmentPointer { get; internal set; }
508 public long SegmentOffset { get; internal set; }
510 public long SegmentSize { get; internal set; }
512 public string FileName { get; internal set; }
514 internal override void Accept (LogEventVisitor visitor)
516 visitor.Visit (this);
520 public sealed class UnmanagedSymbolEvent : LogEvent {
522 public long CodePointer { get; internal set; }
524 public long CodeSize { get; internal set; }
526 public string Name { get; internal set; }
528 internal override void Accept (LogEventVisitor visitor)
530 visitor.Visit (this);
534 public sealed class SynchronizationPointEvent : LogEvent {
536 public LogSynchronizationPoint Type { get; internal set; }
538 internal override void Accept (LogEventVisitor visitor)
540 visitor.Visit (this);