From b32b3207a4c26c79620802ea4cbf49678931cbe0 Mon Sep 17 00:00:00 2001 From: "Gustavo J. A. M. Carneiro" Date: Fri, 23 Apr 2010 15:55:15 +0100 Subject: [PATCH] Bug 894 - ./waf --run error message upon segfault --- wutils.py | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/wutils.py b/wutils.py index c426d57b8..b5b1a17c8 100644 --- a/wutils.py +++ b/wutils.py @@ -147,7 +147,20 @@ def run_argv(argv, env, os_env=None, cwd=None, force_no_valgrind=False): except WindowsError, ex: raise Utils.WafError("Command %s raised exception %s" % (argv, ex)) if retval: - raise Utils.WafError("Command %s exited with code %i" % (argv, retval)) + signame = None + if retval < 0: # signal? + import signal + for name, val in vars(signal).iteritems(): + if len(name) > 3 and name[:3] == 'SIG' and name[3] != '_': + if val == -retval: + signame = name + break + if signame: + raise Utils.WafError("Command %s terminated with signal %s." + " Run it under a debugger to get more information " + "(./waf --run --command-template=\"gdb --args %%s \")." % (argv, signame)) + else: + raise Utils.WafError("Command %s exited with code %i" % (argv, retval)) return retval def get_run_program(program_string, command_template=None):