[sgen] More dtrace probes.
[mono.git] / data / mono.d
1 /* 
2  * mono.d: DTrace provider for Mono
3  * 
4  * Authors:
5  *   Andreas Faerber <andreas.faerber@web.de>
6  * 
7  */
8
9 provider mono {
10         /* Virtual Execution System (VES) */
11         probe ves__init__begin ();
12         probe ves__init__end ();
13
14         /* Just-in-time compiler (JIT) */
15         probe method__compile__begin (char* class_name, char* method_name, char* signature);
16         probe method__compile__end (char* class_name, char* method_name, char* signature, int success);
17
18         /* Garbage Collector (GC) */    
19         probe gc__begin (int generation);
20         probe gc__end (int generation);
21
22         probe gc__checkpoint__1 (int generation);
23         probe gc__checkpoint__2 (int generation);
24         probe gc__checkpoint__3 (int generation);
25         probe gc__checkpoint__4 (int generation);
26         probe gc__checkpoint__5 (int generation);
27         probe gc__checkpoint__6 (int generation);
28         probe gc__checkpoint__7 (int generation);
29         probe gc__checkpoint__8 (int generation);
30         probe gc__checkpoint__9 (int generation);
31
32         probe gc__concurrent__start__begin (int generation);
33         probe gc__concurrent__start__end (int generation, long long num_major_objects_marked);
34         probe gc__concurrent__update__finish__begin (int generation, long long num_major_objects_marked);
35         probe gc__concurrent__update__end (int generation, long long num_major_objects_marked);
36         probe gc__concurrent__finish__end (int generation, long long num_major_objects_marked);
37
38         probe gc__sweep__begin (int generation, int full_sweep);
39         probe gc__sweep__end (int generation, int full_sweep);
40
41         probe gc__world__stop__begin ();
42         probe gc__world__stop__end ();
43         probe gc__world__restart__begin (int generation);
44         probe gc__world__restart__end (int generation);
45
46         probe gc__heap__alloc (uintptr_t addr, uintptr_t len);
47         probe gc__heap__free (uintptr_t addr, uintptr_t len);
48
49         probe gc__locked ();
50         probe gc__unlocked ();
51
52         probe gc__nursery__tlab__alloc (uintptr_t addr, uintptr_t len);
53         probe gc__nursery__obj__alloc (uintptr_t addr, uintptr_t size, char *ns_name, char *class_name);
54
55         probe gc__major__obj__alloc__large (uintptr_t addr, uintptr_t size, char *ns_name, char *class_name);
56         probe gc__major__obj__alloc__pinned (uintptr_t addr, uintptr_t size, char *ns_name, char *class_name);
57         probe gc__major__obj__alloc__degraded (uintptr_t addr, uintptr_t size, char *ns_name, char *class_name);
58         probe gc__major__obj__alloc__mature (uintptr_t addr, uintptr_t size, char *ns_name, char *class_name);
59
60         /* Can be nursery->nursery, nursery->major or major->major */
61         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);
62
63         probe gc__nursery__swept (uintptr_t addr, uintptr_t len);
64         probe gc__major__swept (uintptr_t addr, uintptr_t len);
65
66         probe gc__obj__pinned (uintptr_t addr, uintptr_t size, char *ns_name, char *class_name, int generation);
67
68         probe gc__finalize__enqueue (uintptr_t addr, uintptr_t size, char *ns_name, char *class_name, int generation, int is_critical);
69         probe gc__finalize__invoke (uintptr_t addr, uintptr_t size, char *ns_name, char *class_name);
70
71         probe gc__weak__update (uintptr_t ref_addr, uintptr_t old_addr, uintptr_t new_addr, uintptr_t size, char *ns_name, char *class_name, int track);
72
73         probe gc__global__remset__add (uintptr_t ref_addr, uintptr_t obj_addr, uintptr_t size, char *ns_name, char *class_name);
74 };
75
76 #pragma D attributes Evolving/Evolving/Common provider mono provider
77 #pragma D attributes Private/Private/Unknown provider mono module
78 #pragma D attributes Private/Private/Unknown provider mono function
79 #pragma D attributes Evolving/Evolving/Common provider mono name
80 #pragma D attributes Evolving/Evolving/Common provider mono args
81