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);