Mercurial > hg > graal-jvmci-8
comparison src/os/linux/vm/os_linux.cpp @ 14432:935bf3340572
8028470: PPC64 (part 214): linux: extend signal handler to catch SIGTRAP on ppc64.
Reviewed-by: kvn
author | goetz |
---|---|
date | Sat, 16 Nov 2013 01:42:55 +0100 |
parents | 2b8e28fdf503 |
children | 8a9bb7821e28 bbfbe9b06038 |
comparison
equal
deleted
inserted
replaced
14431:1410ad6b05f1 | 14432:935bf3340572 |
---|---|
530 sigemptyset(&allowdebug_blocked_sigs); | 530 sigemptyset(&allowdebug_blocked_sigs); |
531 sigaddset(&unblocked_sigs, SIGILL); | 531 sigaddset(&unblocked_sigs, SIGILL); |
532 sigaddset(&unblocked_sigs, SIGSEGV); | 532 sigaddset(&unblocked_sigs, SIGSEGV); |
533 sigaddset(&unblocked_sigs, SIGBUS); | 533 sigaddset(&unblocked_sigs, SIGBUS); |
534 sigaddset(&unblocked_sigs, SIGFPE); | 534 sigaddset(&unblocked_sigs, SIGFPE); |
535 #if defined(PPC64) | |
536 sigaddset(&unblocked_sigs, SIGTRAP); | |
537 #endif | |
535 sigaddset(&unblocked_sigs, SR_signum); | 538 sigaddset(&unblocked_sigs, SR_signum); |
536 | 539 |
537 if (!ReduceSignalUsage) { | 540 if (!ReduceSignalUsage) { |
538 if (!os::Linux::is_sig_ignored(SHUTDOWN1_SIGNAL)) { | 541 if (!os::Linux::is_sig_ignored(SHUTDOWN1_SIGNAL)) { |
539 sigaddset(&unblocked_sigs, SHUTDOWN1_SIGNAL); | 542 sigaddset(&unblocked_sigs, SHUTDOWN1_SIGNAL); |
2292 print_signal_handler(st, SR_signum, buf, buflen); | 2295 print_signal_handler(st, SR_signum, buf, buflen); |
2293 print_signal_handler(st, SHUTDOWN1_SIGNAL, buf, buflen); | 2296 print_signal_handler(st, SHUTDOWN1_SIGNAL, buf, buflen); |
2294 print_signal_handler(st, SHUTDOWN2_SIGNAL , buf, buflen); | 2297 print_signal_handler(st, SHUTDOWN2_SIGNAL , buf, buflen); |
2295 print_signal_handler(st, SHUTDOWN3_SIGNAL , buf, buflen); | 2298 print_signal_handler(st, SHUTDOWN3_SIGNAL , buf, buflen); |
2296 print_signal_handler(st, BREAK_SIGNAL, buf, buflen); | 2299 print_signal_handler(st, BREAK_SIGNAL, buf, buflen); |
2300 #if defined(PPC64) | |
2301 print_signal_handler(st, SIGTRAP, buf, buflen); | |
2302 #endif | |
2297 } | 2303 } |
2298 | 2304 |
2299 static char saved_jvm_path[MAXPATHLEN] = {0}; | 2305 static char saved_jvm_path[MAXPATHLEN] = {0}; |
2300 | 2306 |
2301 // Find the full path to the current module, libjvm.so | 2307 // Find the full path to the current module, libjvm.so |
4421 set_signal_handler(SIGSEGV, true); | 4427 set_signal_handler(SIGSEGV, true); |
4422 set_signal_handler(SIGPIPE, true); | 4428 set_signal_handler(SIGPIPE, true); |
4423 set_signal_handler(SIGBUS, true); | 4429 set_signal_handler(SIGBUS, true); |
4424 set_signal_handler(SIGILL, true); | 4430 set_signal_handler(SIGILL, true); |
4425 set_signal_handler(SIGFPE, true); | 4431 set_signal_handler(SIGFPE, true); |
4432 #if defined(PPC64) | |
4433 set_signal_handler(SIGTRAP, true); | |
4434 #endif | |
4426 set_signal_handler(SIGXFSZ, true); | 4435 set_signal_handler(SIGXFSZ, true); |
4427 | 4436 |
4428 if (libjsig_is_loaded) { | 4437 if (libjsig_is_loaded) { |
4429 // Tell libjsig jvm finishes setting signal handlers | 4438 // Tell libjsig jvm finishes setting signal handlers |
4430 (*end_signal_setting)(); | 4439 (*end_signal_setting)(); |
4563 DO_SIGNAL_CHECK(SIGILL); | 4572 DO_SIGNAL_CHECK(SIGILL); |
4564 DO_SIGNAL_CHECK(SIGFPE); | 4573 DO_SIGNAL_CHECK(SIGFPE); |
4565 DO_SIGNAL_CHECK(SIGBUS); | 4574 DO_SIGNAL_CHECK(SIGBUS); |
4566 DO_SIGNAL_CHECK(SIGPIPE); | 4575 DO_SIGNAL_CHECK(SIGPIPE); |
4567 DO_SIGNAL_CHECK(SIGXFSZ); | 4576 DO_SIGNAL_CHECK(SIGXFSZ); |
4568 | 4577 #if defined(PPC64) |
4578 DO_SIGNAL_CHECK(SIGTRAP); | |
4579 #endif | |
4569 | 4580 |
4570 // ReduceSignalUsage allows the user to override these handlers | 4581 // ReduceSignalUsage allows the user to override these handlers |
4571 // see comments at the very top and jvm_solaris.h | 4582 // see comments at the very top and jvm_solaris.h |
4572 if (!ReduceSignalUsage) { | 4583 if (!ReduceSignalUsage) { |
4573 DO_SIGNAL_CHECK(SHUTDOWN1_SIGNAL); | 4584 DO_SIGNAL_CHECK(SHUTDOWN1_SIGNAL); |