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. 4 5 using System; 6 using System.Collections.Generic; 7 8 namespace Mono.Profiler.Log { 9 10 public sealed class AppDomainLoadEvent : LogEvent { 11 12 public long AppDomainId { get; internal set; } 13 Accept(LogEventVisitor visitor)14 internal override void Accept (LogEventVisitor visitor) 15 { 16 visitor.Visit (this); 17 } 18 } 19 20 public sealed class AppDomainUnloadEvent : LogEvent { 21 22 public long AppDomainId { get; internal set; } 23 Accept(LogEventVisitor visitor)24 internal override void Accept (LogEventVisitor visitor) 25 { 26 visitor.Visit (this); 27 } 28 } 29 30 public sealed class AppDomainNameEvent : LogEvent { 31 32 public long AppDomainId { get; internal set; } 33 34 public string Name { get; internal set; } 35 Accept(LogEventVisitor visitor)36 internal override void Accept (LogEventVisitor visitor) 37 { 38 visitor.Visit (this); 39 } 40 } 41 42 public sealed class ContextLoadEvent : LogEvent { 43 44 public long ContextId { get; internal set; } 45 46 public long AppDomainId { get; internal set; } 47 Accept(LogEventVisitor visitor)48 internal override void Accept (LogEventVisitor visitor) 49 { 50 visitor.Visit (this); 51 } 52 } 53 54 public sealed class ContextUnloadEvent : LogEvent { 55 56 public long ContextId { get; internal set; } 57 58 public long AppDomainId { get; internal set; } 59 Accept(LogEventVisitor visitor)60 internal override void Accept (LogEventVisitor visitor) 61 { 62 visitor.Visit (this); 63 } 64 } 65 66 public sealed class ThreadStartEvent : LogEvent { 67 68 public long ThreadId { get; internal set; } 69 Accept(LogEventVisitor visitor)70 internal override void Accept (LogEventVisitor visitor) 71 { 72 visitor.Visit (this); 73 } 74 } 75 76 public sealed class ThreadEndEvent : LogEvent { 77 78 public long ThreadId { get; internal set; } 79 Accept(LogEventVisitor visitor)80 internal override void Accept (LogEventVisitor visitor) 81 { 82 visitor.Visit (this); 83 } 84 } 85 86 public sealed class ThreadNameEvent : LogEvent { 87 88 public long ThreadId { get; internal set; } 89 90 public string Name { get; internal set; } 91 Accept(LogEventVisitor visitor)92 internal override void Accept (LogEventVisitor visitor) 93 { 94 visitor.Visit (this); 95 } 96 } 97 98 public sealed class ImageLoadEvent : LogEvent { 99 100 public long ImagePointer { get; internal set; } 101 102 public string Name { get; internal set; } 103 Accept(LogEventVisitor visitor)104 internal override void Accept (LogEventVisitor visitor) 105 { 106 visitor.Visit (this); 107 } 108 } 109 110 public sealed class ImageUnloadEvent : LogEvent { 111 112 public long ImagePointer { get; internal set; } 113 114 public string Name { get; internal set; } 115 Accept(LogEventVisitor visitor)116 internal override void Accept (LogEventVisitor visitor) 117 { 118 visitor.Visit (this); 119 } 120 } 121 122 public sealed class AssemblyLoadEvent : LogEvent { 123 124 public long AssemblyPointer { get; internal set; } 125 126 public long ImagePointer { get; internal set; } 127 128 public string Name { get; internal set; } 129 Accept(LogEventVisitor visitor)130 internal override void Accept (LogEventVisitor visitor) 131 { 132 visitor.Visit (this); 133 } 134 } 135 136 public sealed class AssemblyUnloadEvent : LogEvent { 137 138 public long AssemblyPointer { get; internal set; } 139 140 public long ImagePointer { get; internal set; } 141 142 public string Name { get; internal set; } 143 Accept(LogEventVisitor visitor)144 internal override void Accept (LogEventVisitor visitor) 145 { 146 visitor.Visit (this); 147 } 148 } 149 150 public sealed class ClassLoadEvent : LogEvent { 151 152 public long ClassPointer { get; internal set; } 153 154 public long ImagePointer { get; internal set; } 155 156 public string Name { get; internal set; } 157 Accept(LogEventVisitor visitor)158 internal override void Accept (LogEventVisitor visitor) 159 { 160 visitor.Visit (this); 161 } 162 } 163 164 public sealed class JitEvent : LogEvent { 165 166 public long MethodPointer { get; internal set; } 167 168 public long CodePointer { get; internal set; } 169 170 public long CodeSize { get; internal set; } 171 172 public string Name { get; internal set; } 173 Accept(LogEventVisitor visitor)174 internal override void Accept (LogEventVisitor visitor) 175 { 176 visitor.Visit (this); 177 } 178 } 179 180 public sealed class JitHelperEvent : LogEvent { 181 182 public LogJitHelper Type { get; internal set; } 183 184 public long BufferPointer { get; internal set; } 185 186 public long BufferSize { get; internal set; } 187 188 public string Name { get; internal set; } 189 Accept(LogEventVisitor visitor)190 internal override void Accept (LogEventVisitor visitor) 191 { 192 visitor.Visit (this); 193 } 194 } 195 196 public sealed class AllocationEvent : LogEvent { 197 198 public long ClassPointer { get; internal set; } 199 200 public long ObjectPointer { get; internal set; } 201 202 public long ObjectSize { get; internal set; } 203 204 public IReadOnlyList<long> Backtrace { get; internal set; } 205 Accept(LogEventVisitor visitor)206 internal override void Accept (LogEventVisitor visitor) 207 { 208 visitor.Visit (this); 209 } 210 } 211 212 public sealed class HeapBeginEvent : LogEvent { 213 Accept(LogEventVisitor visitor)214 internal override void Accept (LogEventVisitor visitor) 215 { 216 visitor.Visit (this); 217 } 218 } 219 220 public sealed class HeapEndEvent : LogEvent { 221 Accept(LogEventVisitor visitor)222 internal override void Accept (LogEventVisitor visitor) 223 { 224 visitor.Visit (this); 225 } 226 } 227 228 public sealed class HeapObjectEvent : LogEvent { 229 230 public struct HeapObjectReference { 231 232 public long Offset { get; internal set; } 233 234 public long ObjectPointer { get; internal set; } 235 } 236 237 public long ObjectPointer { get; internal set; } 238 239 public long ClassPointer { get; internal set; } 240 241 public long ObjectSize { get; internal set; } 242 243 public IReadOnlyList<HeapObjectReference> References { get; internal set; } 244 Accept(LogEventVisitor visitor)245 internal override void Accept (LogEventVisitor visitor) 246 { 247 visitor.Visit (this); 248 } 249 } 250 251 public sealed class HeapRootsEvent : LogEvent { 252 253 public struct HeapRoot { 254 255 public long ObjectPointer { get; internal set; } 256 257 public LogHeapRootAttributes Attributes { get; internal set; } 258 259 public long ExtraInfo { get; internal set; } 260 } 261 262 public long MaxGenerationCollectionCount { get; internal set; } 263 264 public IReadOnlyList<HeapRoot> Roots { get; internal set; } 265 Accept(LogEventVisitor visitor)266 internal override void Accept (LogEventVisitor visitor) 267 { 268 visitor.Visit (this); 269 } 270 } 271 272 public sealed class GCEvent : LogEvent { 273 274 public LogGCEvent Type { get; internal set; } 275 276 public byte Generation { get; internal set; } 277 Accept(LogEventVisitor visitor)278 internal override void Accept (LogEventVisitor visitor) 279 { 280 visitor.Visit (this); 281 } 282 } 283 284 public sealed class GCResizeEvent : LogEvent { 285 286 public long NewSize { get; internal set; } 287 Accept(LogEventVisitor visitor)288 internal override void Accept (LogEventVisitor visitor) 289 { 290 visitor.Visit (this); 291 } 292 } 293 294 public sealed class GCMoveEvent : LogEvent { 295 296 public IReadOnlyList<long> OldObjectPointers { get; internal set; } 297 298 public IReadOnlyList<long> NewObjectPointers { get; internal set; } 299 Accept(LogEventVisitor visitor)300 internal override void Accept (LogEventVisitor visitor) 301 { 302 visitor.Visit (this); 303 } 304 } 305 306 public sealed class GCHandleCreationEvent : LogEvent { 307 308 public LogGCHandleType Type { get; internal set; } 309 310 public long Handle { get; internal set; } 311 312 public long ObjectPointer { get; internal set; } 313 314 public IReadOnlyList<long> Backtrace { get; internal set; } 315 Accept(LogEventVisitor visitor)316 internal override void Accept (LogEventVisitor visitor) 317 { 318 visitor.Visit (this); 319 } 320 } 321 322 public sealed class GCHandleDeletionEvent : LogEvent { 323 324 public LogGCHandleType Type { get; internal set; } 325 326 public long Handle { get; internal set; } 327 328 public IReadOnlyList<long> Backtrace { get; internal set; } 329 Accept(LogEventVisitor visitor)330 internal override void Accept (LogEventVisitor visitor) 331 { 332 visitor.Visit (this); 333 } 334 } 335 336 public sealed class GCFinalizeBeginEvent : LogEvent { 337 Accept(LogEventVisitor visitor)338 internal override void Accept (LogEventVisitor visitor) 339 { 340 visitor.Visit (this); 341 } 342 } 343 344 public sealed class GCFinalizeEndEvent : LogEvent { 345 Accept(LogEventVisitor visitor)346 internal override void Accept (LogEventVisitor visitor) 347 { 348 visitor.Visit (this); 349 } 350 } 351 352 public sealed class GCFinalizeObjectBeginEvent : LogEvent { 353 354 public long ObjectPointer { get; internal set; } 355 Accept(LogEventVisitor visitor)356 internal override void Accept (LogEventVisitor visitor) 357 { 358 visitor.Visit (this); 359 } 360 } 361 362 public sealed class GCFinalizeObjectEndEvent : LogEvent { 363 364 public long ObjectPointer { get; internal set; } 365 Accept(LogEventVisitor visitor)366 internal override void Accept (LogEventVisitor visitor) 367 { 368 visitor.Visit (this); 369 } 370 } 371 372 public sealed class ThrowEvent : LogEvent { 373 374 public long ObjectPointer { get; internal set; } 375 376 public IReadOnlyList<long> Backtrace { get; internal set; } 377 Accept(LogEventVisitor visitor)378 internal override void Accept (LogEventVisitor visitor) 379 { 380 visitor.Visit (this); 381 } 382 } 383 384 public sealed class ExceptionClauseEvent : LogEvent { 385 386 public LogExceptionClause Type { get; internal set; } 387 388 public long Index { get; internal set; } 389 390 public long MethodPointer { get; internal set; } 391 392 public long ObjectPointer { get; internal set; } 393 Accept(LogEventVisitor visitor)394 internal override void Accept (LogEventVisitor visitor) 395 { 396 visitor.Visit (this); 397 } 398 } 399 400 public sealed class EnterEvent : LogEvent { 401 402 public long MethodPointer { get; internal set; } 403 Accept(LogEventVisitor visitor)404 internal override void Accept (LogEventVisitor visitor) 405 { 406 visitor.Visit (this); 407 } 408 } 409 410 public sealed class LeaveEvent : LogEvent { 411 412 public long MethodPointer { get; internal set; } 413 Accept(LogEventVisitor visitor)414 internal override void Accept (LogEventVisitor visitor) 415 { 416 visitor.Visit (this); 417 } 418 } 419 420 public sealed class ExceptionalLeaveEvent : LogEvent { 421 422 public long MethodPointer { get; internal set; } 423 Accept(LogEventVisitor visitor)424 internal override void Accept (LogEventVisitor visitor) 425 { 426 visitor.Visit (this); 427 } 428 } 429 430 public sealed class MonitorEvent : LogEvent { 431 432 public LogMonitorEvent Event { get; internal set; } 433 434 public long ObjectPointer { get; internal set; } 435 436 public IReadOnlyList<long> Backtrace { get; internal set; } 437 Accept(LogEventVisitor visitor)438 internal override void Accept (LogEventVisitor visitor) 439 { 440 visitor.Visit (this); 441 } 442 } 443 444 public sealed class SampleHitEvent : LogEvent { 445 446 public long ThreadId { get; internal set; } 447 448 public IReadOnlyList<long> UnmanagedBacktrace { get; internal set; } 449 450 public IReadOnlyList<long> ManagedBacktrace { get; internal set; } 451 Accept(LogEventVisitor visitor)452 internal override void Accept (LogEventVisitor visitor) 453 { 454 visitor.Visit (this); 455 } 456 } 457 458 public sealed class CounterSamplesEvent : LogEvent { 459 460 public struct CounterSample { 461 462 public long Index { get; internal set; } 463 464 public LogCounterType Type { get; internal set; } 465 466 public object Value { get; internal set; } 467 } 468 469 public IReadOnlyList<CounterSample> Samples { get; internal set; } 470 Accept(LogEventVisitor visitor)471 internal override void Accept (LogEventVisitor visitor) 472 { 473 visitor.Visit (this); 474 } 475 } 476 477 public sealed class CounterDescriptionsEvent : LogEvent { 478 479 public struct CounterDescription { 480 481 public LogCounterSection Section { get; internal set; } 482 483 public string SectionName { get; internal set; } 484 485 public string CounterName { get; internal set; } 486 487 public LogCounterType Type { get; internal set; } 488 489 public LogCounterUnit Unit { get; internal set; } 490 491 public LogCounterVariance Variance { get; internal set; } 492 493 public long Index { get; internal set; } 494 } 495 496 public IReadOnlyList<CounterDescription> Descriptions { get; internal set; } 497 Accept(LogEventVisitor visitor)498 internal override void Accept (LogEventVisitor visitor) 499 { 500 visitor.Visit (this); 501 } 502 } 503 504 public sealed class UnmanagedBinaryEvent : LogEvent { 505 506 public long SegmentPointer { get; internal set; } 507 508 public long SegmentOffset { get; internal set; } 509 510 public long SegmentSize { get; internal set; } 511 512 public string FileName { get; internal set; } 513 Accept(LogEventVisitor visitor)514 internal override void Accept (LogEventVisitor visitor) 515 { 516 visitor.Visit (this); 517 } 518 } 519 520 public sealed class UnmanagedSymbolEvent : LogEvent { 521 522 public long CodePointer { get; internal set; } 523 524 public long CodeSize { get; internal set; } 525 526 public string Name { get; internal set; } 527 Accept(LogEventVisitor visitor)528 internal override void Accept (LogEventVisitor visitor) 529 { 530 visitor.Visit (this); 531 } 532 } 533 534 public sealed class SynchronizationPointEvent : LogEvent { 535 536 public LogSynchronizationPoint Type { get; internal set; } 537 Accept(LogEventVisitor visitor)538 internal override void Accept (LogEventVisitor visitor) 539 { 540 visitor.Visit (this); 541 } 542 } 543 } 544