X-Git-Url: http://git.efficios.com/?a=blobdiff_plain;f=cli%2Fbabeltrace.c;h=8c0c50de54b1c65f5a5d29c6812255374d755c64;hb=2f5a009b5615db990687d0775038fdc82bbe8071;hp=a058bcebe46273c3638685f84643311a8b565d84;hpb=1ddeea3465b39d2953151302a787176b955c61a0;p=babeltrace.git diff --git a/cli/babeltrace.c b/cli/babeltrace.c index a058bceb..8c0c50de 100644 --- a/cli/babeltrace.c +++ b/cli/babeltrace.c @@ -43,6 +43,7 @@ #include #include #include +#include #include #include #include @@ -76,6 +77,8 @@ static const char* log_level_env_var_names[] = { "BABELTRACE_PLUGIN_TEXT_DMESG_SRC_LOG_LEVEL", "BABELTRACE_PLUGIN_UTILS_MUXER_FLT_LOG_LEVEL", "BABELTRACE_PLUGIN_UTILS_TRIMMER_FLT_LOG_LEVEL", + "BABELTRACE_PLUGIN_CTFCOPYTRACE_LIB_LOG_LEVEL", + "BABELTRACE_PLUGIN_CTF_FS_SINK_LOG_LEVEL", "BABELTRACE_PYTHON_PLUGIN_PROVIDER_LOG_LEVEL", NULL, }; @@ -292,6 +295,7 @@ void print_value_rec(FILE *fp, struct bt_value *value, size_t indent) const char *str_val; int size; int i; + enum bt_value_status status; if (!value) { return; @@ -303,32 +307,46 @@ void print_value_rec(FILE *fp, struct bt_value *value, size_t indent) bt_common_color_reset()); break; case BT_VALUE_TYPE_BOOL: - bt_value_bool_get(value, &bool_val); + status = bt_value_bool_get(value, &bool_val); + if (status != BT_VALUE_STATUS_OK) { + goto error; + } fprintf(fp, "%s%s%s%s\n", bt_common_color_bold(), bt_common_color_fg_cyan(), bool_val ? "yes" : "no", bt_common_color_reset()); break; case BT_VALUE_TYPE_INTEGER: - bt_value_integer_get(value, &int_val); + status = bt_value_integer_get(value, &int_val); + if (status != BT_VALUE_STATUS_OK) { + goto error; + } fprintf(fp, "%s%s%" PRId64 "%s\n", bt_common_color_bold(), bt_common_color_fg_red(), int_val, bt_common_color_reset()); break; case BT_VALUE_TYPE_FLOAT: - bt_value_float_get(value, &dbl_val); + status = bt_value_float_get(value, &dbl_val); + if (status != BT_VALUE_STATUS_OK) { + goto error; + } fprintf(fp, "%s%s%lf%s\n", bt_common_color_bold(), bt_common_color_fg_red(), dbl_val, bt_common_color_reset()); break; case BT_VALUE_TYPE_STRING: - bt_value_string_get(value, &str_val); + status = bt_value_string_get(value, &str_val); + if (status != BT_VALUE_STATUS_OK) { + goto error; + } fprintf(fp, "%s%s%s%s\n", bt_common_color_bold(), bt_common_color_fg_green(), str_val, bt_common_color_reset()); break; case BT_VALUE_TYPE_ARRAY: size = bt_value_array_size(value); - assert(size >= 0); + if (size < 0) { + goto error; + } if (size == 0) { print_indent(fp, indent); @@ -340,7 +358,9 @@ void print_value_rec(FILE *fp, struct bt_value *value, size_t indent) struct bt_value *element = bt_value_array_get(value, i); - assert(element); + if (!element) { + goto error; + } print_indent(fp, indent); fprintf(fp, "- "); @@ -384,6 +404,11 @@ void print_value_rec(FILE *fp, struct bt_value *value, size_t indent) default: abort(); } + return; + +error: + BT_LOGE("Error printing value of type %s.", + bt_value_type_string(bt_value_get_type(value))); } static @@ -593,10 +618,15 @@ int load_dynamic_plugins(struct bt_value *plugin_paths) struct bt_value *plugin_path_value = NULL; const char *plugin_path; struct bt_plugin_set *plugin_set; + enum bt_value_status status; plugin_path_value = bt_value_array_get(plugin_paths, i); - bt_value_string_get(plugin_path_value, &plugin_path); - assert(plugin_path); + status = bt_value_string_get(plugin_path_value, &plugin_path); + if (status != BT_VALUE_STATUS_OK) { + BT_LOGD_STR("Cannot get plugin path string."); + BT_PUT(plugin_path_value); + continue; + } /* * Skip this if the directory does not exist because @@ -1421,8 +1451,8 @@ int cmd_run_ctx_connect_upstream_port_to_downstream_component( assert(upstream_port_name); if (!bt_common_star_glob_match( - cfg_conn->downstream_port_glob->str, -1ULL, - downstream_port_name, -1ULL)) { + cfg_conn->downstream_port_glob->str, SIZE_MAX, + downstream_port_name, SIZE_MAX)) { bt_put(downstream_port); continue; } @@ -1561,23 +1591,24 @@ int cmd_run_ctx_connect_upstream_port_to_downstream_component( } ctx->connect_ports = true; } - goto end; - } - if (status != BT_GRAPH_STATUS_OK) { - BT_LOGE("Cannot create connection: cannot find a matching downstream port for upstream port: " - "upstream-port-addr=%p, upstream-port-name=\"%s\", " - "downstream-comp-name=\"%s\", conn-arg=\"%s\"", - upstream_port, bt_port_get_name(upstream_port), - cfg_conn->downstream_comp_name->str, - cfg_conn->arg->str); - fprintf(stderr, - "Cannot create connection: cannot find a matching downstream port for upstream port `%s`: %s\n", - bt_port_get_name(upstream_port), cfg_conn->arg->str); - goto error; + /* + * We found a matching downstream port: the search is + * over. + */ + goto end; } - goto end; + /* No downstream port found */ + BT_LOGE("Cannot create connection: cannot find a matching downstream port for upstream port: " + "upstream-port-addr=%p, upstream-port-name=\"%s\", " + "downstream-comp-name=\"%s\", conn-arg=\"%s\"", + upstream_port, bt_port_get_name(upstream_port), + cfg_conn->downstream_comp_name->str, + cfg_conn->arg->str); + fprintf(stderr, + "Cannot create connection: cannot find a matching downstream port for upstream port `%s`: %s\n", + bt_port_get_name(upstream_port), cfg_conn->arg->str); error: ret = -1; @@ -1635,7 +1666,7 @@ int cmd_run_ctx_connect_upstream_port(struct cmd_run_ctx *ctx, if (!bt_common_star_glob_match( cfg_conn->upstream_port_glob->str, - -1ULL, upstream_port_name, -1ULL)) { + SIZE_MAX, upstream_port_name, SIZE_MAX)) { continue; } @@ -1810,28 +1841,28 @@ int cmd_run_ctx_init(struct cmd_run_ctx *ctx, struct bt_config *cfg) the_graph = ctx->graph; ret = bt_graph_add_port_added_listener(ctx->graph, - graph_port_added_listener, ctx); + graph_port_added_listener, NULL, ctx); if (ret < 0) { BT_LOGE_STR("Cannot add \"port added\" listener to graph."); goto error; } ret = bt_graph_add_port_removed_listener(ctx->graph, - graph_port_removed_listener, ctx); + graph_port_removed_listener, NULL, ctx); if (ret < 0) { BT_LOGE_STR("Cannot add \"port removed\" listener to graph."); goto error; } ret = bt_graph_add_ports_connected_listener(ctx->graph, - graph_ports_connected_listener, ctx); + graph_ports_connected_listener, NULL, ctx); if (ret < 0) { BT_LOGE_STR("Cannot add \"ports connected\" listener to graph."); goto error; } ret = bt_graph_add_ports_disconnected_listener(ctx->graph, - graph_ports_disconnected_listener, ctx); + graph_ports_disconnected_listener, NULL, ctx); if (ret < 0) { BT_LOGE_STR("Cannot add \"ports disconnected\" listener to graph."); goto error; @@ -2573,9 +2604,9 @@ void set_auto_log_levels(struct bt_config *cfg) while (*env_var_name) { if (!getenv(*env_var_name)) { if (cfg->verbose) { - setenv(*env_var_name, "I", 1); + g_setenv(*env_var_name, "I", 1); } else if (cfg->debug) { - setenv(*env_var_name, "V", 1); + g_setenv(*env_var_name, "V", 1); } else { char val[2] = { 0 }; @@ -2584,7 +2615,7 @@ void set_auto_log_levels(struct bt_config *cfg) * explicitly specified. */ val[0] = cfg->log_level; - setenv(*env_var_name, val, 1); + g_setenv(*env_var_name, val, 1); } }