projects
/
mono.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
2aace5b
)
[profiler] Fix some buffer size calculations.
author
Alex Rønne Petersen
<alpeters@microsoft.com>
Tue, 26 Sep 2017 11:43:28 +0000
(13:43 +0200)
committer
Alex Rønne Petersen
<alpeters@microsoft.com>
Tue, 26 Sep 2017 11:43:28 +0000
(13:43 +0200)
mono/profiler/log.c
patch
|
blob
|
history
diff --git
a/mono/profiler/log.c
b/mono/profiler/log.c
index 274e1a50fa6fa8a32fd6a2e186d3722e3295574d..f3dbc56cbad61ad5382d149c07877bdd0359877b 100644
(file)
--- a/
mono/profiler/log.c
+++ b/
mono/profiler/log.c
@@
-1142,7
+1142,7
@@
sync_point_mark (MonoProfilerSyncPointType type)
ENTER_LOG (&sync_points_ctr, logbuffer,
EVENT_SIZE /* event */ +
ENTER_LOG (&sync_points_ctr, logbuffer,
EVENT_SIZE /* event */ +
-
LEB128
_SIZE /* type */
+
BYTE
_SIZE /* type */
);
emit_event (logbuffer, TYPE_META | TYPE_SYNC_POINT);
);
emit_event (logbuffer, TYPE_META | TYPE_SYNC_POINT);
@@
-1905,7
+1905,8
@@
clause_exc (MonoProfiler *prof, MonoMethod *method, uint32_t clause_num, MonoExc
EVENT_SIZE /* event */ +
BYTE_SIZE /* clause type */ +
LEB128_SIZE /* clause num */ +
EVENT_SIZE /* event */ +
BYTE_SIZE /* clause type */ +
LEB128_SIZE /* clause num */ +
- LEB128_SIZE /* method */
+ LEB128_SIZE /* method */ +
+ LEB128_SIZE /* exc */
);
emit_event (logbuffer, TYPE_EXCEPTION | TYPE_CLAUSE);
);
emit_event (logbuffer, TYPE_EXCEPTION | TYPE_CLAUSE);
@@
-2268,7
+2269,7
@@
dump_ubin (const char *filename, uintptr_t load_addr, uint64_t offset, uintptr_t
LEB128_SIZE /* load address */ +
LEB128_SIZE /* offset */ +
LEB128_SIZE /* size */ +
LEB128_SIZE /* load address */ +
LEB128_SIZE /* offset */ +
LEB128_SIZE /* size */ +
-
n
len /* file name */
+ len /* file name */
);
emit_event (logbuffer, TYPE_SAMPLE | TYPE_SAMPLE_UBIN);
);
emit_event (logbuffer, TYPE_SAMPLE | TYPE_SAMPLE_UBIN);
@@
-2671,6
+2672,12
@@
counters_sample (uint64_t timestamp)
;
for (agent = log_profiler.counters; agent; agent = agent->next) {
;
for (agent = log_profiler.counters; agent; agent = agent->next) {
+ /*
+ * FIXME: This calculation is incorrect for string counters since
+ * mono_counter_get_size () just returns 0 in that case. We should
+ * address this if we ever actually add any string counters to Mono.
+ */
+
size +=
LEB128_SIZE /* index */ +
BYTE_SIZE /* type */ +
size +=
LEB128_SIZE /* index */ +
BYTE_SIZE /* type */ +