Bug 894 - ./waf --run error message upon segfault

This commit is contained in:
Gustavo J. A. M. Carneiro
2010-04-23 15:55:15 +01:00
parent 677b7a22d3
commit b32b3207a4

View File

@@ -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 <program> --command-template=\"gdb --args %%s <args>\")." % (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):