X-Git-Url: http://wien.tomnetworks.com/gitweb/?a=blobdiff_plain;f=mono%2Fprofiler%2Fproflog.h;h=650b8896504910b41133b7465919f90ccb8990f0;hb=aa6a91981b5df2d215ffdaefcfb9e92409d133ca;hp=11de752836a4ce0f471e22200e00d88c64cfca09;hpb=6612c9b9fd48aa95d950f3603a79b1e11f8e1c13;p=mono.git diff --git a/mono/profiler/proflog.h b/mono/profiler/proflog.h index 11de752836a..650b8896504 100644 --- a/mono/profiler/proflog.h +++ b/mono/profiler/proflog.h @@ -4,8 +4,14 @@ #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 4 +/* + * Changes in data versions: + * version 2: added offsets in heap walk + * version 3: added GC roots + * version 4: added sample/statistical profiling + */ enum { TYPE_ALLOC, @@ -15,11 +21,12 @@ enum { TYPE_EXCEPTION, TYPE_MONITOR, TYPE_HEAP, - TYPE_EXTENDED, + TYPE_SAMPLE, /* 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,24 +37,42 @@ 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, TYPE_EXC_LEAVE = 3 << 4, TYPE_JIT = 4 << 4, /* extended type for TYPE_EXCEPTION */ + TYPE_THROW = 0 << 4, TYPE_CLAUSE = 1 << 4, TYPE_EXCEPTION_BT = 1 << 7, /* extended type for TYPE_ALLOC */ 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_END }; +enum { + SAMPLE_CYCLES = 1, + SAMPLE_INSTRUCTIONS, + SAMPLE_CACHE_MISSES, + SAMPLE_CACHE_REFS, + SAMPLE_BRANCHES, + SAMPLE_BRANCH_MISSES, + SAMPLE_LAST +}; + #endif /* __MONO_PROFLOG_H__ */