-static void list_formats(FILE *fp)
-{
- fprintf(fp, "\n");
- bt_fprintf_format_list(fp);
-}
-
-static void usage(FILE *fp)
-{
- fprintf(fp, "BabelTrace Trace Viewer and Converter %s\n\n", VERSION);
- fprintf(fp, "usage : babeltrace [OPTIONS] FILE...\n");
- fprintf(fp, "\n");
- fprintf(fp, " FILE Input trace file(s) and/or directory(ies)\n");
- fprintf(fp, " (space-separated)\n");
- fprintf(fp, " -w, --output OUTPUT Output trace path (default: stdout)\n");
- fprintf(fp, "\n");
- fprintf(fp, " -i, --input-format FORMAT Input trace format (default: ctf)\n");
- fprintf(fp, " -o, --output-format FORMAT Output trace format (default: text)\n");
- fprintf(fp, "\n");
- fprintf(fp, " -h, --help This help message\n");
- fprintf(fp, " -l, --list List available formats\n");
- fprintf(fp, " -v, --verbose Verbose mode\n");
- fprintf(fp, " (or set BABELTRACE_VERBOSE environment variable)\n");
- fprintf(fp, " -d, --debug Debug mode\n");
- fprintf(fp, " (or set BABELTRACE_DEBUG environment variable)\n");
- fprintf(fp, " --no-delta Do not print time delta between consecutive events\n");
- fprintf(fp, " -n, --names name1<,name2,...> Print field names:\n");
- fprintf(fp, " (payload OR args OR arg)\n");
- fprintf(fp, " none, all, scope, header, (context OR ctx)\n");
- fprintf(fp, " (default: payload,context)\n");
- fprintf(fp, " -f, --fields name1<,name2,...> Print additional fields:\n");
- fprintf(fp, " all, trace, trace:hostname, trace:domain,\n");
- fprintf(fp, " trace:procname, trace:vpid, loglevel, emf, callsite.\n");
- fprintf(fp, " (default: trace:hostname,trace:procname,trace:vpid)\n");
- fprintf(fp, " --clock-cycles Timestamp in cycles\n");
- fprintf(fp, " --clock-offset seconds Clock offset in seconds\n");
- fprintf(fp, " --clock-seconds Print the timestamps as [sec.ns]\n");
- fprintf(fp, " (default is: [hh:mm:ss.ns])\n");
- fprintf(fp, " --clock-date Print clock date\n");
- fprintf(fp, " --clock-gmt Print clock in GMT time zone (default: local time zone)\n");
- fprintf(fp, " --clock-force-correlate Assume that clocks are inherently correlated\n");
- fprintf(fp, " across traces.\n");
- list_formats(fp);
- fprintf(fp, "\n");
-}
-
-static int get_names_args(poptContext *pc)
-{
- char *str, *strlist, *strctx;
- int ret = 0;
-
- opt_payload_field_names = 0;
- opt_context_field_names = 0;
- strlist = (char *) poptGetOptArg(*pc);
- if (!strlist) {
- return -EINVAL;
- }
- str = strtok_r(strlist, ",", &strctx);
- do {
- if (!strcmp(str, "all"))
- opt_all_field_names = 1;
- else if (!strcmp(str, "scope"))
- opt_scope_field_names = 1;
- else if (!strcmp(str, "context") || !strcmp(str, "ctx"))
- opt_context_field_names = 1;
- else if (!strcmp(str, "header"))
- opt_header_field_names = 1;
- else if (!strcmp(str, "payload") || !strcmp(str, "args") || !strcmp(str, "arg"))
- opt_payload_field_names = 1;
- else if (!strcmp(str, "none")) {
- opt_all_field_names = 0;
- opt_scope_field_names = 0;
- opt_context_field_names = 0;
- opt_header_field_names = 0;
- opt_payload_field_names = 0;
- } else {
- fprintf(stderr, "[error] unknown field name type %s\n", str);
- free(strlist);
- ret = -EINVAL;
- goto end;
- }
- } while ((str = strtok_r(NULL, ",", &strctx)));
-end:
- free(strlist);
- return ret;
-}
-
-static int get_fields_args(poptContext *pc)
-{
- char *str, *strlist, *strctx;
- int ret = 0;
-
- strlist = (char *) poptGetOptArg(*pc);
- if (!strlist) {
- return -EINVAL;
- }
- str = strtok_r(strlist, ",", &strctx);
- do {
- opt_trace_default_fields = 0;
- if (!strcmp(str, "all"))
- opt_all_fields = 1;
- else if (!strcmp(str, "trace"))
- opt_trace_field = 1;
- else if (!strcmp(str, "trace:hostname"))
- opt_trace_hostname_field = 1;
- else if (!strcmp(str, "trace:domain"))
- opt_trace_domain_field = 1;
- else if (!strcmp(str, "trace:procname"))
- opt_trace_procname_field = 1;
- else if (!strcmp(str, "trace:vpid"))
- opt_trace_vpid_field = 1;
- else if (!strcmp(str, "loglevel"))
- opt_loglevel_field = 1;
- else if (!strcmp(str, "emf"))
- opt_emf_field = 1;
- else if (!strcmp(str, "callsite"))
- opt_callsite_field = 1;
- else {
- fprintf(stderr, "[error] unknown field type %s\n", str);
- ret = -EINVAL;
- goto end;
- }
- } while ((str = strtok_r(NULL, ",", &strctx)));
-end:
- free(strlist);
- return ret;
-}
-