X-Git-Url: http://git.lttng.org/?a=blobdiff_plain;f=src%2Fbin%2Flttng%2Fcommands%2Fsnapshot.c;h=2d250afc37cfb01df040159936dcbef24444f90d;hb=68808f4e0bbb3adccff72ff9dab6ec9f3a9e6866;hp=a357730d008444d1d1b1db4ffc36dc40637bd19e;hpb=3c9bd23cc5999729bb49a973d8c1e2bedef939bb;p=lttng-tools.git diff --git a/src/bin/lttng/commands/snapshot.c b/src/bin/lttng/commands/snapshot.c index a357730d0..2d250afc3 100644 --- a/src/bin/lttng/commands/snapshot.c +++ b/src/bin/lttng/commands/snapshot.c @@ -195,10 +195,11 @@ static int list_output(void) MSG("Snapshot output list for session %s", current_session_name); while ((s_iter = lttng_snapshot_output_list_get_next(list)) != NULL) { - MSG("%s[%" PRIu32 "] %s: %s", indent4, + MSG("%s[%" PRIu32 "] %s: %s (max-size: %" PRId64 ")", indent4, lttng_snapshot_output_get_id(s_iter), lttng_snapshot_output_get_name(s_iter), - lttng_snapshot_output_get_ctrl_url(s_iter)); + lttng_snapshot_output_get_ctrl_url(s_iter), + lttng_snapshot_output_get_maxsize(s_iter)); output_seen = 1; } @@ -264,6 +265,8 @@ static int add_output(const char *url) { int ret; struct lttng_snapshot_output *output = NULL; + char name[NAME_MAX]; + const char *n_ptr; if (!url && (!opt_data_url || !opt_ctrl_url)) { ret = CMD_ERROR; @@ -282,11 +285,21 @@ static int add_output(const char *url) goto error; } + n_ptr = lttng_snapshot_output_get_name(output); + if (*n_ptr == '\0') { + int pret; + pret = snprintf(name, sizeof(name), DEFAULT_SNAPSHOT_NAME "-%" PRIu32, + lttng_snapshot_output_get_id(output)); + if (pret < 0) { + PERROR("snprintf add output name"); + } + n_ptr = name; + } + MSG("Snapshot output successfully added for session %s", current_session_name); MSG(" [%" PRIu32 "] %s: %s (max-size: %" PRId64 ")", - lttng_snapshot_output_get_id(output), - lttng_snapshot_output_get_name(output), + lttng_snapshot_output_get_id(output), n_ptr, lttng_snapshot_output_get_ctrl_url(output), lttng_snapshot_output_get_maxsize(output)); error: @@ -359,6 +372,11 @@ static int record(const char *url) ret = lttng_snapshot_record(current_session_name, output, 0); if (ret < 0) { + if (ret == -LTTNG_ERR_MAX_SIZE_INVALID) { + ERR("The minimum size of a snapshot is computed by multiplying " + "the total amount of streams with the largest subbuffer " + "in the session."); + } goto error; } @@ -480,10 +498,17 @@ int cmd_snapshot(int argc, const char **argv) ret = handle_command(poptGetArgs(pc)); if (ret < 0) { - if (ret == -LTTNG_ERR_EPERM) { + switch (-ret) { + case LTTNG_ERR_EPERM: ERR("The session needs to be set in no output mode (--no-output)"); + break; + case LTTNG_ERR_SNAPSHOT_NODATA: + WARN("%s", lttng_strerror(ret)); + break; + default: + ERR("%s", lttng_strerror(ret)); + break; } - ERR("%s", lttng_strerror(ret)); goto end; }