projects
/
lttv.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Initial port of the detailed event view
[lttv.git]
/
lttv
/
lttv
/
tracecontext.c
diff --git
a/lttv/lttv/tracecontext.c
b/lttv/lttv/tracecontext.c
index e937789c1e5ac499fd8df0f1e9817aac92f7a44a..5f6455a42f4be31b1d8bd4db7efba9ebce502e8f 100644
(file)
--- a/
lttv/lttv/tracecontext.c
+++ b/
lttv/lttv/tracecontext.c
@@
-22,10
+22,12
@@
#include <string.h>
#include <lttv/lttv.h>
#include <string.h>
#include <lttv/lttv.h>
-#include <lttv/trace
context
.h>
+#include <lttv/trace
set-process
.h>
#include <ltt/event.h>
#include <ltt/trace.h>
#include <ltt/event.h>
#include <ltt/trace.h>
+#ifdef BABEL_NOFILTER
#include <lttv/filter.h>
#include <lttv/filter.h>
+#endif
#include <errno.h>
#include <ltt/time.h>
#include <lttv/event.h>
#include <errno.h>
#include <ltt/time.h>
#include <lttv/event.h>
@@
-36,6
+38,8
@@
#include <babeltrace/ctf/events.h>
#include <babeltrace/ctf/iterator.h>
#include <babeltrace/ctf/events.h>
#include <babeltrace/ctf/iterator.h>
+
+#ifdef BABEL_CLEANUP
gint compare_tracefile(gconstpointer a, gconstpointer b)
{
gint comparison = 0;
gint compare_tracefile(gconstpointer a, gconstpointer b)
{
gint comparison = 0;
@@
-71,7
+75,7
@@
struct _LttvTracesetContextPosition {
* set, else, a position is set (may be end
* of trace, with ep->len == 0) */
};
* set, else, a position is set (may be end
* of trace, with ep->len == 0) */
};
-
+#endif
void lttv_context_init(LttvTracesetContext *self, LttvTraceset *ts)
{
LTTV_TRACESET_CONTEXT_GET_CLASS(self)->init(self, ts);
void lttv_context_init(LttvTracesetContext *self, LttvTraceset *ts)
{
LTTV_TRACESET_CONTEXT_GET_CLASS(self)->init(self, ts);
@@
-206,6
+210,8
@@
init(LttvTracesetContext *self, LttvTraceset *ts)
&begin_pos,
NULL);
self->event_hooks = lttv_hooks_new();
&begin_pos,
NULL);
self->event_hooks = lttv_hooks_new();
+ self->tmpState = g_new(LttvTraceState *, 1);
+
for(i = 0 ; i < nb_trace ; i++) {
tc = LTTV_TRACESET_CONTEXT_GET_CLASS(self)->new_trace_context(self);
self->traces[i] = tc;
for(i = 0 ; i < nb_trace ; i++) {
tc = LTTV_TRACESET_CONTEXT_GET_CLASS(self)->new_trace_context(self);
self->traces[i] = tc;
@@
-236,7
+242,9
@@
init(LttvTracesetContext *self, LttvTraceset *ts)
}
self->sync_position = lttv_traceset_context_position_new(self);
}
self->sync_position = lttv_traceset_context_position_new(self);
+#ifdef BABEL_CLEANUP
self->pqueue = g_tree_new(compare_tracefile);
self->pqueue = g_tree_new(compare_tracefile);
+#endif
lttv_process_traceset_seek_time(self, ltt_time_zero);
lttv_traceset_context_compute_time_span(self, &self->time_span);
lttv_process_traceset_seek_time(self, ltt_time_zero);
lttv_traceset_context_compute_time_span(self, &self->time_span);
@@
-685,15
+693,14
@@
guint lttv_process_traceset_middle(LttvTracesetContext *self,
unsigned count = 0;
unsigned count = 0;
+ gint last_ret = 0;
struct bt_ctf_event *bt_event;
LttvEvent event;
struct bt_ctf_event *bt_event;
LttvEvent event;
- /* TODO ybrosseau 2012-03-16: Put in really in the traceset */
- LttvTraceState state;
while(TRUE) {
while(TRUE) {
- if(
(count >= nb_events) && (nb_events != G_MAXULONG
)) {
+ if(
last_ret == TRUE || ((count >= nb_events) && (nb_events != G_MAXULONG)
)) {
break;
}
break;
}
@@
-702,9
+709,11
@@
guint lttv_process_traceset_middle(LttvTracesetContext *self,
count++;
event.bt_event = bt_event;
count++;
event.bt_event = bt_event;
- event.state = &state;
-
- lttv_hooks_call(self->event_hooks, &event);
+ /* TODO ybrosseau 2012-04-01: use bt_ctf_get_trace_handle
+ to retrieve the right state container */
+ event.state = self->tmpState;
+
+ last_ret = lttv_hooks_call(self->event_hooks, &event);
if(bt_iter_next(bt_ctf_get_iter(self->iter)) < 0) {
printf("ERROR NEXT\n");
if(bt_iter_next(bt_ctf_get_iter(self->iter)) < 0) {
printf("ERROR NEXT\n");
This page took
0.024303 seconds
and
4
git commands to generate.