Fix Path.GetFullPath for roots on Windows
[mono.git] / mono / profiler / proflog.h
index 1e0e90d0708e00c20330297e0476cb406ca4361e..ecb0e43b82334160ce788b255733b12902fce6ae 100644 (file)
  * version 9: added MONO_PROFILER_CODE_BUFFER_EXCEPTION_HANDLING
  * version 10: added TYPE_COVERAGE
  * version 11: added thread ID to TYPE_SAMPLE_HIT
- * version 12: added more load/unload events
+               added more load/unload events
+                   unload for class
+                   unload for image
+                   load/unload for appdomain
+                   load/unload for contexts
+                   load/unload/name for assemblies
+               removed TYPE_LOAD_ERR flag (profiler never generated it, now removed from the format itself)
+               added TYPE_GC_HANDLE_{CREATED,DESTROYED}_BT
+               TYPE_JIT events are no longer guaranteed to have code start/size info (can be zero)
+ * version 12: added MONO_COUNTER_PROFILER
  */
 
 enum {
@@ -50,8 +59,10 @@ enum {
        TYPE_GC_EVENT  = 1 << 4,
        TYPE_GC_RESIZE = 2 << 4,
        TYPE_GC_MOVE   = 3 << 4,
-       TYPE_GC_HANDLE_CREATED   = 4 << 4,
-       TYPE_GC_HANDLE_DESTROYED = 5 << 4,
+       TYPE_GC_HANDLE_CREATED      = 4 << 4,
+       TYPE_GC_HANDLE_DESTROYED    = 5 << 4,
+       TYPE_GC_HANDLE_CREATED_BT   = 6 << 4,
+       TYPE_GC_HANDLE_DESTROYED_BT = 7 << 4,
        /* extended type for TYPE_METHOD */
        TYPE_LEAVE     = 1 << 4,
        TYPE_ENTER     = 2 << 4,
@@ -62,9 +73,11 @@ enum {
        TYPE_CLAUSE       = 1 << 4,
        TYPE_EXCEPTION_BT = 1 << 7,
        /* extended type for TYPE_ALLOC */
-       TYPE_ALLOC_BT  = 1 << 4,
+       TYPE_ALLOC_NO_BT  = 0 << 4,
+       TYPE_ALLOC_BT     = 1 << 4,
        /* extended type for TYPE_MONITOR */
-       TYPE_MONITOR_BT  = 1 << 7,
+       TYPE_MONITOR_NO_BT  = 0 << 7,
+       TYPE_MONITOR_BT     = 1 << 7,
        /* extended type for TYPE_SAMPLE */
        TYPE_SAMPLE_HIT           = 0 << 4,
        TYPE_SAMPLE_USYM          = 1 << 4,
@@ -81,6 +94,8 @@ enum {
        TYPE_END
 };
 
+// Sampling sources
+// Unless you have compiled with --enable-perf-events, only SAMPLE_CYCLES is available
 enum {
        SAMPLE_CYCLES = 1,
        SAMPLE_INSTRUCTIONS,