mono.d 2.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. /*
  2. * mono.d: DTrace provider for Mono
  3. *
  4. * Authors:
  5. * Andreas Faerber <[email protected]>
  6. *
  7. */
  8. provider mono {
  9. /* Virtual Execution System (VES) */
  10. probe ves__init__begin ();
  11. probe ves__init__end ();
  12. /* Just-in-time compiler (JIT) */
  13. probe method__compile__begin (char* class_name, char* method_name, char* signature);
  14. probe method__compile__end (char* class_name, char* method_name, char* signature, int success);
  15. /* Garbage Collector (GC) */
  16. probe gc__begin (int generation);
  17. probe gc__end (int generation);
  18. probe gc__requested (int generation, uintptr_t requested_size, int wait_to_finish);
  19. probe gc__concurrent__start__begin (int generation);
  20. probe gc__concurrent__update__finish__begin (int generation, long long num_major_objects_marked);
  21. probe gc__sweep__begin (int generation, int full_sweep);
  22. probe gc__sweep__end (int generation, int full_sweep);
  23. probe gc__world__stop__begin ();
  24. probe gc__world__stop__end ();
  25. probe gc__world__restart__begin (int generation);
  26. probe gc__world__restart__end (int generation);
  27. probe gc__nursery__tlab__alloc (uintptr_t addr, uintptr_t len);
  28. probe gc__nursery__obj__alloc (uintptr_t addr, uintptr_t size, char *ns_name, char *class_name);
  29. probe gc__major__obj__alloc__large (uintptr_t addr, uintptr_t size, char *ns_name, char *class_name);
  30. probe gc__major__obj__alloc__pinned (uintptr_t addr, uintptr_t size, char *ns_name, char *class_name);
  31. probe gc__major__obj__alloc__degraded (uintptr_t addr, uintptr_t size, char *ns_name, char *class_name);
  32. /* Can be nursery->nursery, nursery->major or major->major */
  33. probe gc__obj__moved (uintptr_t dest, uintptr_t src, int dest_gen, int src_gen, uintptr_t size, char *ns_name, char *class_name);
  34. probe gc__nursery__swept (uintptr_t addr, uintptr_t len);
  35. probe gc__major__swept (uintptr_t addr, uintptr_t len);
  36. probe gc__obj__pinned (uintptr_t addr, uintptr_t size, char *ns_name, char *class_name, int generation);
  37. probe gc__finalize__enqueue (uintptr_t addr, uintptr_t size, char *ns_name, char *class_name, int generation, int is_critical);
  38. probe gc__finalize__invoke (uintptr_t addr, uintptr_t size, char *ns_name, char *class_name);
  39. probe gc__weak__update (uintptr_t ref_addr, uintptr_t new_addr, uintptr_t size, char *ns_name, char *class_name, int track);
  40. probe gc__global__remset__add (uintptr_t ref_addr, uintptr_t obj_addr, uintptr_t size, char *ns_name, char *class_name);
  41. probe gc__obj__cemented (uintptr_t addr, uintptr_t size, char *ns_name, char *class_name);
  42. };
  43. #pragma D attributes Evolving/Evolving/Common provider mono provider
  44. #pragma D attributes Private/Private/Unknown provider mono module
  45. #pragma D attributes Private/Private/Unknown provider mono function
  46. #pragma D attributes Evolving/Evolving/Common provider mono name
  47. #pragma D attributes Evolving/Evolving/Common provider mono args