tp: add width option
Change-Id: I5bdf232274a621f7fb8eecd33ea77c936bf55641
diff --git a/src/trace_processor/trace_processor_shell.cc b/src/trace_processor/trace_processor_shell.cc
index 1eede6f..f172b2d 100644
--- a/src/trace_processor/trace_processor_shell.cc
+++ b/src/trace_processor/trace_processor_shell.cc
@@ -35,6 +35,7 @@
#include "perfetto/base/time.h"
#include "perfetto/ext/base/file_utils.h"
#include "perfetto/ext/base/getopt.h"
+#include "perfetto/ext/base/optional.h"
#include "perfetto/ext/base/scoped_file.h"
#include "perfetto/ext/base/string_splitter.h"
#include "perfetto/ext/base/string_utils.h"
@@ -1268,6 +1269,7 @@
util::Status StartInteractiveShell(const InteractiveOptions& options) {
SetupLineEditor();
+ uint32_t column_width = options.column_width;
for (;;) {
ScopedLine line = GetLine("> ");
if (!line)
@@ -1294,6 +1296,13 @@
if (!status.ok()) {
PERFETTO_ELOG("%s", status.c_message());
}
+ } else if (strcmp(command, "width") == 0 && strlen(arg)) {
+ base::Optional<uint32_t> width = base::CStringToUInt32(arg);
+ if (!width) {
+ PERFETTO_ELOG("Invalid column width specified");
+ continue;
+ }
+ column_width = *width;
} else if (strcmp(command, "load-metrics-sql") == 0) {
base::Status status =
LoadMetricsAndExtensionsSql(options.metrics, options.extensions);
@@ -1319,7 +1328,7 @@
base::TimeNanos t_start = base::GetWallTimeNs();
auto it = g_tp->ExecuteQuery(line.get());
- PrintQueryResultInteractively(&it, t_start, options.column_width);
+ PrintQueryResultInteractively(&it, t_start, column_width);
}
return util::OkStatus();
}