diff options
author | Eelco Dolstra <e.dolstra@tudelft.nl> | 2007-12-14T14·49+0000 |
---|---|---|
committer | Eelco Dolstra <e.dolstra@tudelft.nl> | 2007-12-14T14·49+0000 |
commit | df303666bceb5715e706478fad0325447a2a52f6 (patch) | |
tree | 90b6ae1a414abfde716e26cfdd49da4ae19879f7 /src | |
parent | 1e90b4189d5b922479a10eac550736d608b038fd (diff) |
* Use strsignal if available to give better error messages for
builders that fail due to a signal.
Diffstat (limited to 'src')
-rw-r--r-- | src/libutil/util.cc | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/src/libutil/util.cc b/src/libutil/util.cc index 37e158e4aff0..d0731c0b4827 100644 --- a/src/libutil/util.cc +++ b/src/libutil/util.cc @@ -8,6 +8,7 @@ #include <cerrno> #include <cstdio> #include <sstream> +#include <cstring> #include <sys/stat.h> #include <sys/wait.h> @@ -960,8 +961,15 @@ string statusToString(int status) if (!WIFEXITED(status) || WEXITSTATUS(status) != 0) { if (WIFEXITED(status)) return (format("failed with exit code %1%") % WEXITSTATUS(status)).str(); - else if (WIFSIGNALED(status)) - return (format("failed due to signal %1%") % WTERMSIG(status)).str(); + else if (WIFSIGNALED(status)) { + int sig = WTERMSIG(status); +#if HAVE_STRSIGNAL + const char * description = strsignal(sig); + return (format("failed due to signal %1% (%2%)") % sig % description).str(); +#else + return (format("failed due to signal %1%") % sig).str(); +#endif + } else return "died abnormally"; } else return "succeeded"; |