Make starterd print out its own version on failed applications

We already printed out application versions if they had self-reported a
timing report before crashing; however, it is useful to always have
_some_ version information, so include the starterd's own version in the
log message.

Change-Id: Ia75b8a1b2f54bc659d05b05d131acefa6e2aa8ee
Signed-off-by: James Kuszmaul <james.kuszmaul@bluerivertech.com>
diff --git a/aos/starter/subprocess.cc b/aos/starter/subprocess.cc
index b6a20f0..9606adc 100644
--- a/aos/starter/subprocess.cc
+++ b/aos/starter/subprocess.cc
@@ -725,17 +725,22 @@
     stop_reason_ = static_cast<aos::starter::LastStopReason>(*read_result);
   }
 
+  const std::string starter_version_string =
+      absl::StrCat("starter version '",
+                   event_loop_->VersionString().value_or("unknown"), "'");
   switch (status_) {
     case aos::starter::State::STARTING: {
       if (exit_code_.value() == 0) {
         LOG_IF(INFO, quiet_flag_ == QuietLogging::kNo)
             << "Application '" << name_ << "' pid " << pid_
-            << " exited with status " << exit_code_.value();
+            << " exited with status " << exit_code_.value() << " and "
+            << starter_version_string;
       } else {
         LOG_IF(WARNING, quiet_flag_ == QuietLogging::kNo ||
                             quiet_flag_ == QuietLogging::kNotForDebugging)
             << "Failed to start '" << name_ << "' on pid " << pid_
-            << " : Exited with status " << exit_code_.value();
+            << " : Exited with status " << exit_code_.value() << " and "
+            << starter_version_string;
       }
       if (autorestart()) {
         QueueStart();
@@ -753,13 +758,13 @@
       } else {
         if (quiet_flag_ == QuietLogging::kNo ||
             quiet_flag_ == QuietLogging::kNotForDebugging) {
-          std::string version_string =
+          const std::string version_string =
               latest_timing_report_version_.has_value()
-                  ? absl::StrCat("'", latest_timing_report_version_.value(),
-                                 "'")
-                  : "unknown";
+                  ? absl::StrCat("version '",
+                                 latest_timing_report_version_.value(), "'")
+                  : starter_version_string;
           LOG_IF(WARNING, quiet_flag_ == QuietLogging::kNo)
-              << "Application '" << name_ << "' pid " << pid_ << " version "
+              << "Application '" << name_ << "' pid " << pid_ << " "
               << version_string << " exited unexpectedly with status "
               << exit_code_.value();
         }