[runtime] New profiler API.
[mono.git] / mono / profiler / log.h
index ee1d1d347b2c1b019eeaf1e5070bb47480f75d59..10171a8d05b9fe07999fe13ed8560e902ed737de 100644 (file)
@@ -6,9 +6,9 @@
 
 #define BUF_ID 0x4D504C01
 #define LOG_HEADER_ID 0x4D505A01
-#define LOG_VERSION_MAJOR 1
-#define LOG_VERSION_MINOR 1
-#define LOG_DATA_VERSION 13
+#define LOG_VERSION_MAJOR 2
+#define LOG_VERSION_MINOR 0
+#define LOG_DATA_VERSION 14
 
 /*
  * Changes in major/minor versions:
                moved the time field in TYPE_SAMPLE_HIT to right after the event byte, now encoded as a regular time field
                changed the time field in TYPE_SAMPLE_COUNTERS to be encoded as a regular time field (in nanoseconds)
                added TYPE_GC_FINALIZE_{START,END,OBJECT_START,OBJECT_END}
+ * version 14: added event field to TYPE_MONITOR instead of encoding it in the extended info
+               all TYPE_MONITOR events can now contain backtraces
+               changed address field in TYPE_SAMPLE_UBIN to be based on ptr_base
+               added an image pointer field to assembly load events
+               added an exception object field to TYPE_CLAUSE
+               class unload events no longer exist (they were never emitted)
  */
 
 enum {
@@ -144,6 +150,17 @@ typedef enum {
        SYNC_POINT_WORLD_START
 } MonoProfilerSyncPointType;
 
+typedef enum {
+       MONO_PROFILER_MONITOR_CONTENTION = 1,
+       MONO_PROFILER_MONITOR_DONE = 2,
+       MONO_PROFILER_MONITOR_FAIL = 3,
+} MonoProfilerMonitorEvent;
+
+enum {
+       MONO_PROFILER_GC_HANDLE_CREATED,
+       MONO_PROFILER_GC_HANDLE_DESTROYED,
+};
+
 // Sampling sources
 // Unless you have compiled with --enable-perf-events, only SAMPLE_CYCLES is available
 enum {
@@ -259,7 +276,7 @@ typedef struct {
        //Max size of the sample hit buffer, we'll drop frames if it's reached
        int max_allocated_sample_hits;
 
-       MonoProfileSamplingMode sampling_mode;
+       MonoProfilerSampleMode sampling_mode;
 } ProfilerConfig;
 
 void proflog_parse_args (ProfilerConfig *config, const char *desc);