mirror of
https://github.com/perlbot/perlbuut
synced 2025-06-07 18:15:40 -04:00
Use %Config to generate syscall name mapping automagically.
This commit is contained in:
parent
bdad15849d
commit
5b3dc8b76e
1 changed files with 12 additions and 16 deletions
|
@ -8,6 +8,17 @@ use POE::Filter::Line;
|
||||||
use POE::Filter::Stream;
|
use POE::Filter::Stream;
|
||||||
use POE::Wheel::Run;
|
use POE::Wheel::Run;
|
||||||
use strict;
|
use strict;
|
||||||
|
use Config;
|
||||||
|
|
||||||
|
my %sig_map;
|
||||||
|
|
||||||
|
do {
|
||||||
|
my @sig_names = split ' ', $Config{sig_name};
|
||||||
|
my @sig_nums = split ' ', $Config{sig_num};
|
||||||
|
@sig_map{@sig_nums} = map {'SIG' . $_} @sig_names;
|
||||||
|
$sig_map{31} = "SIGSYS (Illegal Syscall)";
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
sub start {
|
sub start {
|
||||||
my( $class ) = @_;
|
my( $class ) = @_;
|
||||||
|
@ -46,22 +57,7 @@ warn "Spawning Eval: $args->{code}\n";
|
||||||
if ($exit) {
|
if ($exit) {
|
||||||
print "[Exited $exit]";
|
print "[Exited $exit]";
|
||||||
} elsif ($signal) {
|
} elsif ($signal) {
|
||||||
my $signame = {
|
my $signame = $sig_map{$signal} // $signal;
|
||||||
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]";
|
print "[Died $signame]";
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
Loading…
Add table
Reference in a new issue