X-Git-Url: http://git.efficios.com/?a=blobdiff_plain;f=converter%2Fbabeltrace.c;h=ef783ed495a3f35295de62f6a0f71261ac216b98;hb=cab553af02b34e1979e14d6c0303ad22a5a3c118;hp=ff8a6c54e7dc6c7d7fc1e1b2bd9c59b6563b6283;hpb=b7b61ced2a4d4e3222640ad20e6655cb4379c012;p=babeltrace.git diff --git a/converter/babeltrace.c b/converter/babeltrace.c index ff8a6c54..ef783ed4 100644 --- a/converter/babeltrace.c +++ b/converter/babeltrace.c @@ -36,7 +36,7 @@ #include #include #include -#include +#include #include #include @@ -76,6 +76,12 @@ static int opt_stream_intersection; static struct bt_format *fmt_read; +void bt_dummy_hook(void); +void bt_lttng_live_hook(void); +void bt_ctf_hook(void); +void bt_ctf_text_hook(void); +void bt_ctf_metadata_hook(void); + static void strlower(char *str) { @@ -138,7 +144,7 @@ static struct poptOption long_options[] = { { "clock-gmt", 0, POPT_ARG_NONE, NULL, OPT_CLOCK_GMT, NULL, NULL }, { "clock-force-correlate", 0, POPT_ARG_NONE, NULL, OPT_CLOCK_FORCE_CORRELATE, NULL, NULL }, { "stream-intersection", 0, POPT_ARG_NONE, NULL, OPT_STREAM_INTERSECTION, NULL, NULL }, -#ifdef ENABLE_DEBUGINFO +#ifdef ENABLE_DEBUG_INFO { "debug-info-dir", 0, POPT_ARG_STRING, NULL, OPT_DEBUG_INFO_DIR, NULL, NULL }, { "debug-info-full-path", 0, POPT_ARG_NONE, NULL, OPT_DEBUG_INFO_FULL_PATH, NULL, NULL }, { "debug-info-target-prefix", 0, POPT_ARG_STRING, NULL, OPT_DEBUG_INFO_TARGET_PREFIX, NULL, NULL }, @@ -189,12 +195,11 @@ static void usage(FILE *fp) fprintf(fp, " --clock-force-correlate Assume that clocks are inherently correlated\n"); fprintf(fp, " across traces.\n"); fprintf(fp, " --stream-intersection Only print events when all streams are active.\n"); -#ifdef ENABLE_DEBUGINFO +#ifdef ENABLE_DEBUG_INFO fprintf(fp, " --debug-info-dir Directory in which to look for debugging information\n"); fprintf(fp, " files. (default: /usr/lib/debug/)\n"); - fprintf(fp, " --debug-info-full-path Show full debug info source and binary paths (if available)\n"); fprintf(fp, " --debug-info-target-prefix Directory to use as a prefix for executable lookup\n"); - fprintf(fp, " during debug info analysis.\n"); + fprintf(fp, " --debug-info-full-path Show full debug info source and binary paths (if available)\n"); #endif list_formats(fp); fprintf(fp, "\n"); @@ -664,6 +669,7 @@ int convert_trace(struct bt_trace_descriptor *td_write, struct bt_iter_pos *begin_pos = NULL, *end_pos = NULL; struct bt_ctf_event *ctf_event; int ret; + int error_holder = 0; sout = container_of(td_write, struct ctf_text_stream_pos, trace_descriptor); @@ -690,11 +696,18 @@ int convert_trace(struct bt_trace_descriptor *td_write, goto end; } ret = bt_iter_next(bt_ctf_get_iter(iter)); - if (ret < 0) { + if (ret == -ERANGE) { + /* + * Remember that a range (truncated packet) + * error occurred and continue. + */ + error_holder = 1; + continue; + } else if (ret < 0) { goto end; } } - ret = 0; + ret = error_holder; end: bt_ctf_iter_destroy(iter); @@ -704,6 +717,15 @@ error_iter: return ret; } +void call_plugins_hooks(void) +{ + bt_dummy_hook(); + bt_lttng_live_hook(); + bt_ctf_hook(); + bt_ctf_text_hook(); + bt_ctf_metadata_hook(); +} + int main(int argc, char **argv) { int ret, partial_error = 0, open_success = 0; @@ -712,6 +734,8 @@ int main(int argc, char **argv) struct bt_context *ctx; int i; + call_plugins_hooks(); + opt_input_paths = g_ptr_array_new(); ret = parse_options(argc, argv);