From 22ec899271a2979d6dd9f1ad310d38f23bb98709 Mon Sep 17 00:00:00 2001 From: Ryan Voots Date: Tue, 18 Apr 2017 11:03:57 -0400 Subject: [PATCH] make error message clearer --- lib/EvalServer.pm | 26 +++++++++++++++++++++++++- 1 file changed, 25 insertions(+), 1 deletion(-) diff --git a/lib/EvalServer.pm b/lib/EvalServer.pm index bab7720..804587e 100644 --- a/lib/EvalServer.pm +++ b/lib/EvalServer.pm @@ -40,7 +40,31 @@ sub spawn_eval { } warn "Spawning Eval: $args->{code}\n"; my $wheel = POE::Wheel::Run->new( - Program => sub { system($^X, $filename); print "[Died $?]" if $? }, + Program => sub { system($^X, $filename); + my ($exit, $signal) = (($?&0xFF00)>>8, $?&0xFF); + + if ($exit) { + print "[Exited $exit]"; + } elsif ($signal) { + my $signame = { + 1 => "SIGHUP", + 2 => "SIGINT", + 3 => "SIGQUIT", + 4 => "SIGILL", + 5 => "SIGTRAP", + 6 => "SIGABRT", + 7 => "SIGBUS", + 8 => "SIGFPE", + 9 => "SIGKILL", + 11 => "SIGSEGV", + 13 => "SIGPIPE", + 14 => "SIGALRM", + 15 => "SIGTERM", + 31 => "SIGSYS (Illegal Syscall)", + }->{$signal} // $signal; + print "[Died $signame]"; + } + }, ProgramArgs => [ ], CloseOnCall => 1, #Make sure all of the filehandles are closed.