Merge pull request #1665 from alexanderkyte/sgen-alloc-assert
[mono.git] / mono / profiler / proflog.h
index c9e7f443b6a5c3f969fb2e1eb745c51a17588e3c..3ea6a8d23822c82e70aeb50506628832e113099f 100644 (file)
@@ -4,8 +4,17 @@
 #define BUF_ID 0x4D504C01
 #define LOG_HEADER_ID 0x4D505A01
 #define LOG_VERSION_MAJOR 0
-#define LOG_VERSION_MINOR 1
-#define LOG_DATA_VERSION 1
+#define LOG_VERSION_MINOR 4
+#define LOG_DATA_VERSION 8
+/*
+ * Changes in data versions:
+ * version 2: added offsets in heap walk
+ * version 3: added GC roots
+ * version 4: added sample/statistical profiling
+ * version 5: added counters sampling
+ * version 6: added optional backtrace in sampling info
+ * version 8: added TYPE_RUNTIME and JIT helpers/trampolines
+ */
 
 enum {
        TYPE_ALLOC,
@@ -15,11 +24,13 @@ enum {
        TYPE_EXCEPTION,
        TYPE_MONITOR,
        TYPE_HEAP,
-       TYPE_EXTENDED,
+       TYPE_SAMPLE,
+       TYPE_RUNTIME,
        /* extended type for TYPE_HEAP */
        TYPE_HEAP_START  = 0 << 4,
        TYPE_HEAP_END    = 1 << 4,
        TYPE_HEAP_OBJECT = 2 << 4,
+       TYPE_HEAP_ROOT   = 3 << 4,
        /* extended type for TYPE_METADATA */
        TYPE_START_LOAD   = 1 << 4,
        TYPE_END_LOAD     = 2 << 4,
@@ -30,10 +41,13 @@ enum {
        TYPE_IMAGE     = 2,
        TYPE_ASSEMBLY  = 3,
        TYPE_DOMAIN    = 4,
+       TYPE_THREAD    = 5,
        /* extended type for TYPE_GC */
        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,
        /* extended type for TYPE_METHOD */
        TYPE_LEAVE     = 1 << 4,
        TYPE_ENTER     = 2 << 4,
@@ -47,8 +61,26 @@ enum {
        TYPE_ALLOC_BT  = 1 << 4,
        /* extended type for TYPE_MONITOR */
        TYPE_MONITOR_BT  = 1 << 7,
+       /* extended type for TYPE_SAMPLE */
+       TYPE_SAMPLE_HIT           = 0 << 4,
+       TYPE_SAMPLE_USYM          = 1 << 4,
+       TYPE_SAMPLE_UBIN          = 2 << 4,
+       TYPE_SAMPLE_COUNTERS_DESC = 3 << 4,
+       TYPE_SAMPLE_COUNTERS      = 4 << 4,
+       /* extended type for TYPE_RUNTIME */
+       TYPE_JITHELPER = 1 << 4,
        TYPE_END
 };
 
+enum {
+       SAMPLE_CYCLES = 1,
+       SAMPLE_INSTRUCTIONS,
+       SAMPLE_CACHE_MISSES,
+       SAMPLE_CACHE_REFS,
+       SAMPLE_BRANCHES,
+       SAMPLE_BRANCH_MISSES,
+       SAMPLE_LAST
+};
+
 #endif /* __MONO_PROFLOG_H__ */