projects
/
babeltrace.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Fix: babeltrace should skip erroneous traces
[babeltrace.git]
/
converter
/
babeltrace.c
diff --git
a/converter/babeltrace.c
b/converter/babeltrace.c
index 5bcfc2a745c68c59e49d597b4bca2517fbc36b1a..904c0150868630c47e60820a4e359635b6bf9588 100644
(file)
--- a/
converter/babeltrace.c
+++ b/
converter/babeltrace.c
@@
-25,6
+25,9
@@
#include <babeltrace/context.h>
#include <babeltrace/ctf/types.h>
#include <babeltrace/ctf/events.h>
#include <babeltrace/context.h>
#include <babeltrace/ctf/types.h>
#include <babeltrace/ctf/events.h>
+/* TODO: fix object model for format-agnostic callbacks */
+#include <babeltrace/ctf/events-internal.h>
+#include <babeltrace/ctf/iterator.h>
#include <babeltrace/ctf-text/types.h>
#include <babeltrace/iterator.h>
#include <popt.h>
#include <babeltrace/ctf-text/types.h>
#include <babeltrace/iterator.h>
#include <popt.h>
@@
-324,7
+327,7
@@
int bt_context_add_traces_recursive(struct bt_context *ctx, const char *path,
GArray *trace_ids;
char lpath[PATH_MAX];
char * const paths[2] = { lpath, NULL };
GArray *trace_ids;
char lpath[PATH_MAX];
char * const paths[2] = { lpath, NULL };
- int ret;
+ int ret
= -1
;
/*
* Need to copy path, because fts_open can change it.
/*
* Need to copy path, because fts_open can change it.
@@
-378,19
+381,19
@@
int bt_context_add_traces_recursive(struct bt_context *ctx, const char *path,
trace_id = bt_context_add_trace(ctx,
node->fts_accpath, format_str,
trace_id = bt_context_add_trace(ctx,
node->fts_accpath, format_str,
- packet_seek);
+ packet_seek
, NULL, NULL
);
if (trace_id < 0) {
if (trace_id < 0) {
- fprintf(stderr, "[
error
] [Context] opening trace \"%s\" from %s "
+ fprintf(stderr, "[
warning
] [Context] opening trace \"%s\" from %s "
"for reading.\n", node->fts_accpath, path);
"for reading.\n", node->fts_accpath, path);
- ret = trace_id;
-
goto error
;
+ /* Allow to skip erroneous traces. */
+
continue
;
}
g_array_append_val(trace_ids, trace_id);
}
}
g_array_free(trace_ids, TRUE);
}
g_array_append_val(trace_ids, trace_id);
}
}
g_array_free(trace_ids, TRUE);
- return
0
;
+ return
ret
;
error:
return ret;
error:
return ret;
@@
-401,7
+404,7
@@
error:
int convert_trace(struct trace_descriptor *td_write,
struct bt_context *ctx)
{
int convert_trace(struct trace_descriptor *td_write,
struct bt_context *ctx)
{
- struct bt_iter *iter;
+ struct bt_
ctf_
iter *iter;
struct ctf_text_stream_pos *sout;
struct bt_iter_pos begin_pos;
struct bt_ctf_event *ctf_event;
struct ctf_text_stream_pos *sout;
struct bt_iter_pos begin_pos;
struct bt_ctf_event *ctf_event;
@@
-411,25
+414,25
@@
int convert_trace(struct trace_descriptor *td_write,
trace_descriptor);
begin_pos.type = BT_SEEK_BEGIN;
trace_descriptor);
begin_pos.type = BT_SEEK_BEGIN;
- iter = bt_iter_create(ctx, &begin_pos, NULL);
+ iter = bt_
ctf_
iter_create(ctx, &begin_pos, NULL);
if (!iter) {
ret = -1;
goto error_iter;
}
if (!iter) {
ret = -1;
goto error_iter;
}
- while ((ctf_event = bt_
iter_read_ctf
_event(iter))) {
- ret = sout->parent.event_cb(&sout->parent, ctf_event->stream);
+ while ((ctf_event = bt_
ctf_iter_read
_event(iter))) {
+ ret = sout->parent.event_cb(&sout->parent, ctf_event->
parent->
stream);
if (ret) {
fprintf(stderr, "[error] Writing event failed.\n");
goto end;
}
if (ret) {
fprintf(stderr, "[error] Writing event failed.\n");
goto end;
}
- ret = bt_iter_next(
iter
);
+ ret = bt_iter_next(
bt_ctf_get_iter(iter)
);
if (ret < 0)
goto end;
}
ret = 0;
end:
if (ret < 0)
goto end;
}
ret = 0;
end:
- bt_iter_destroy(iter);
+ bt_
ctf_
iter_destroy(iter);
error_iter:
return ret;
}
error_iter:
return ret;
}
This page took
0.025686 seconds
and
4
git commands to generate.