|
|
| 147 |
except WindowsError, ex: |
147 |
except WindowsError, ex: |
| 148 |
raise Utils.WafError("Command %s raised exception %s" % (argv, ex)) |
148 |
raise Utils.WafError("Command %s raised exception %s" % (argv, ex)) |
| 149 |
if retval: |
149 |
if retval: |
| 150 |
raise Utils.WafError("Command %s exited with code %i" % (argv, retval)) |
150 |
signame = None |
|
|
151 |
if retval < 0: # signal? |
| 152 |
import signal |
| 153 |
for name, val in vars(signal).iteritems(): |
| 154 |
if len(name) > 3 and name[:3] == 'SIG' and name[3] != '_': |
| 155 |
if val == -retval: |
| 156 |
signame = name |
| 157 |
break |
| 158 |
if signame: |
| 159 |
raise Utils.WafError("Command %s terminated with signal %s." |
| 160 |
" Run it under a debugger to get more information " |
| 161 |
"(./waf --run <program> --command-template=\"gdb --args %%s <args>\")." % (argv, signame)) |
| 162 |
else: |
| 163 |
raise Utils.WafError("Command %s exited with code %i" % (argv, retval)) |
| 151 |
return retval |
164 |
return retval |
| 152 |
|
165 |
|
| 153 |
def get_run_program(program_string, command_template=None): |
166 |
def get_run_program(program_string, command_template=None): |