trace_processor: better error handling while parsing traces

Build upon the Status class to improve error handling and propogation in
trace processor during trace parsing

Change-Id: Ice57e67783cfee05f7a390029ff77fe6fa4fede4
diff --git a/src/trace_processor/trace_processor_shell.cc b/src/trace_processor/trace_processor_shell.cc
index c71bd3b..2d0ad66 100644
--- a/src/trace_processor/trace_processor_shell.cc
+++ b/src/trace_processor/trace_processor_shell.cc
@@ -252,9 +252,9 @@
 
 int RunMetrics(const std::vector<std::string>& metric_names) {
   std::vector<uint8_t> metric_result;
-  int res = g_tp->ComputeMetric(metric_names, &metric_result);
-  if (res) {
-    PERFETTO_ELOG("Error when computing metrics");
+  util::Status status = g_tp->ComputeMetric(metric_names, &metric_result);
+  if (!status.ok()) {
+    PERFETTO_ELOG("Error when computing metrics: %s", status.c_message());
     return 1;
   }
   fwrite(metric_result.data(), sizeof(uint8_t), metric_result.size(), stdout);