Bug 950401 - Add process logging to OS X / BSD. r?bsmedberg draft
authorHenrik Skupin <mail@hskupin.info>
Fri, 03 Jun 2016 18:26:15 +0200
changeset 375279 0ce97b5bd891e968bd62d8717fe0c7b10da26f44
parent 375278 49762b7df7479802962bd1a6c985a21f83822f1a
child 522799 792eb9cd87482bf52ff68ec8e2cbd0b1a13e9d61
push id20203
push userbmo:hskupin@gmail.com
push dateFri, 03 Jun 2016 18:57:22 +0000
reviewersbsmedberg
bugs950401
milestone49.0a1
Bug 950401 - Add process logging to OS X / BSD. r?bsmedberg MozReview-Commit-ID: bEPQabbSP1
ipc/chromium/src/base/process_util_bsd.cc
ipc/chromium/src/base/process_util_mac.mm
--- a/ipc/chromium/src/base/process_util_bsd.cc
+++ b/ipc/chromium/src/base/process_util_bsd.cc
@@ -12,16 +12,22 @@
 #include <spawn.h>
 #include <sys/wait.h>
 
 #include <string>
 
 #include "nspr.h"
 #include "base/eintr_wrapper.h"
 
+namespace {
+
+static mozilla::EnvironmentLog gProcessLog("MOZ_PROCESS_LOG");
+
+}  // namespace
+
 namespace base {
 
 void FreeEnvVarsArray(char* array[], int length)
 {
   for (int i = 0; i < length; i++) {
     free(array[i]);
   }
   delete[] array;
@@ -130,16 +136,18 @@ bool LaunchApp(const std::vector<std::st
   FreeEnvVarsArray(vars, varsLen);
 
   posix_spawn_file_actions_destroy(&file_actions);
 
   bool process_handle_valid = pid > 0;
   if (!spawn_succeeded || !process_handle_valid) {
     retval = false;
   } else {
+    gProcessLog.print("==> process %d launched child process %d\n",
+                      GetCurrentProcId(), pid);
     if (wait)
       HANDLE_EINTR(waitpid(pid, 0, 0));
 
     if (process_handle)
       *process_handle = pid;
   }
 
   return retval;
--- a/ipc/chromium/src/base/process_util_mac.mm
+++ b/ipc/chromium/src/base/process_util_mac.mm
@@ -13,16 +13,22 @@
 #include <string>
 
 #include "base/eintr_wrapper.h"
 #include "base/logging.h"
 #include "base/rand_util.h"
 #include "base/string_util.h"
 #include "base/time.h"
 
+namespace {
+
+static mozilla::EnvironmentLog gProcessLog("MOZ_PROCESS_LOG");
+
+}  // namespace
+
 namespace base {
 
 void FreeEnvVarsArray(char* array[], int length)
 {
   for (int i = 0; i < length; i++) {
     free(array[i]);
   }
   delete[] array;
@@ -165,16 +171,18 @@ bool LaunchApp(const std::vector<std::st
   posix_spawn_file_actions_destroy(&file_actions);
 
   posix_spawnattr_destroy(&spawnattr);
 
   bool process_handle_valid = pid > 0;
   if (!spawn_succeeded || !process_handle_valid) {
     retval = false;
   } else {
+    gProcessLog.print("==> process %d launched child process %d\n",
+                      GetCurrentProcId(), pid);
     if (wait)
       HANDLE_EINTR(waitpid(pid, 0, 0));
 
     if (process_handle)
       *process_handle = pid;
   }
 
   return retval;