X-Git-Url: http://git.lttng.org/?a=blobdiff_plain;f=libust%2Fmarker.c;h=96d140996890c40c5b4a43da45a63a4180aad7d3;hb=8d6300d3b3cb0219e1109e931a2219dbd812b24d;hp=dafa0d7207cfd1dd4bf6bf29199286f9ba1c473f;hpb=b467f7a77d78880b71ec10d8fa8904da7d28043e;p=ust.git diff --git a/libust/marker.c b/libust/marker.c index dafa0d7..96d1409 100644 --- a/libust/marker.c +++ b/libust/marker.c @@ -685,26 +685,14 @@ void marker_update_probe_range(struct marker * const *begin, pthread_mutex_lock(&markers_mutex); for (iter = begin; iter < end; iter++) { + if (!*iter) + continue; /* skip dummy */ mark_entry = get_marker((*iter)->channel, (*iter)->name); if (mark_entry) { set_marker(mark_entry, *iter, !!mark_entry->refcount); /* * ignore error, continue */ - - /* This is added for UST. We emit a core_marker_id event - * for markers that are already registered to a probe - * upon library load. Otherwise, no core_marker_id will - * be generated for these markers. Is this the right thing - * to do? - */ - trace_mark(metadata, core_marker_id, - "channel %s name %s event_id %hu " - "int #1u%zu long #1u%zu pointer #1u%zu " - "size_t #1u%zu alignment #1u%u", - (*iter)->channel, (*iter)->name, mark_entry->event_id, - sizeof(int), sizeof(long), sizeof(void *), - sizeof(size_t), ltt_get_alignment()); } else { disable_marker(*iter); } @@ -1114,12 +1102,14 @@ int marker_get_iter_range(struct marker * const **marker, struct marker * const *begin, struct marker * const *end) { - if (!*marker && begin != end) { + if (!*marker && begin != end) *marker = begin; - return 1; + while (*marker >= begin && *marker < end) { + if (!**marker) + (*marker)++; /* skip dummy */ + else + return 1; } - if (*marker >= begin && *marker < end) - return 1; return 0; } //ust// EXPORT_SYMBOL_GPL(marker_get_iter_range); @@ -1342,8 +1332,10 @@ static void new_markers(struct marker * const *start, struct marker * const *end { if (new_marker_cb) { struct marker * const *m; - for(m=start; m < end; m++) { - new_marker_cb(*m); + + for(m = start; m < end; m++) { + if (*m) + new_marker_cb(*m); } } } @@ -1381,7 +1373,7 @@ lib_added: /* FIXME: update just the loaded lib */ lib_update_markers(); - DBG("just registered a markers section from %p and having %d markers", markers_start, markers_count); + DBG("just registered a markers section from %p and having %d markers (minus dummy markers)", markers_start, markers_count); return 0; } @@ -1423,7 +1415,7 @@ void __attribute__((constructor)) init_markers(void) } } -void __attribute__((constructor)) destroy_markers(void) +void __attribute__((destructor)) destroy_markers(void) { marker_unregister_lib(__start___markers_ptrs); }