From c4c6a9373d3261d6c7fd3b6e5f6abbc3b638c465 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Alex=20R=C3=B8nne=20Petersen?= Date: Sun, 18 Jun 2017 05:45:58 +0200 Subject: [PATCH] [profiler] Add an image pointer field to assembly load events. --- mono/profiler/log.c | 6 ++++++ mono/profiler/mprof-report.c | 2 ++ 2 files changed, 8 insertions(+) diff --git a/mono/profiler/log.c b/mono/profiler/log.c index 7a04f7620a5..223bdb008b1 100644 --- a/mono/profiler/log.c +++ b/mono/profiler/log.c @@ -1847,17 +1847,20 @@ assembly_loaded (MonoProfiler *prof, MonoAssembly *assembly, int result) char *name = mono_stringify_assembly_name (mono_assembly_get_name (assembly)); int nlen = strlen (name) + 1; + MonoImage *image = mono_assembly_get_image (assembly); ENTER_LOG (&assembly_loads_ctr, logbuffer, EVENT_SIZE /* event */ + BYTE_SIZE /* type */ + LEB128_SIZE /* assembly */ + + LEB128_SIZE /* image */ + nlen /* name */ ); emit_event (logbuffer, TYPE_END_LOAD | TYPE_METADATA); emit_byte (logbuffer, TYPE_ASSEMBLY); emit_ptr (logbuffer, assembly); + emit_ptr (logbuffer, image); memcpy (logbuffer->cursor, name, nlen); logbuffer->cursor += nlen; @@ -1871,17 +1874,20 @@ assembly_unloaded (MonoProfiler *prof, MonoAssembly *assembly) { char *name = mono_stringify_assembly_name (mono_assembly_get_name (assembly)); int nlen = strlen (name) + 1; + MonoImage *image = mono_assembly_get_image (assembly); ENTER_LOG (&assembly_unloads_ctr, logbuffer, EVENT_SIZE /* event */ + BYTE_SIZE /* type */ + LEB128_SIZE /* assembly */ + + LEB128_SIZE /* image */ + nlen /* name */ ); emit_event (logbuffer, TYPE_END_UNLOAD | TYPE_METADATA); emit_byte (logbuffer, TYPE_ASSEMBLY); emit_ptr (logbuffer, assembly); + emit_ptr (logbuffer, image); memcpy (logbuffer->cursor, name, nlen); logbuffer->cursor += nlen; diff --git a/mono/profiler/mprof-report.c b/mono/profiler/mprof-report.c index eab9d32a00e..407da063759 100644 --- a/mono/profiler/mprof-report.c +++ b/mono/profiler/mprof-report.c @@ -2494,6 +2494,8 @@ decode_buffer (ProfContext *ctx) while (*p) p++; p++; } else if (mtype == TYPE_ASSEMBLY) { + if (ctx->data_version > 13) + decode_sleb128 (p, &p); // image if (ctx->data_version < 13) decode_uleb128 (p, &p); /* flags */ if (debug) -- 2.25.1