equal
deleted
inserted
replaced
408 } else if (thread->in_stack_red_zone(addr)) { |
408 } else if (thread->in_stack_red_zone(addr)) { |
409 // Fatal red zone violation. Disable the guard pages and fall through |
409 // Fatal red zone violation. Disable the guard pages and fall through |
410 // to handle_unexpected_exception way down below. |
410 // to handle_unexpected_exception way down below. |
411 thread->disable_stack_red_zone(); |
411 thread->disable_stack_red_zone(); |
412 tty->print_raw_cr("An irrecoverable stack overflow has occurred."); |
412 tty->print_raw_cr("An irrecoverable stack overflow has occurred."); |
|
413 |
|
414 // This is a likely cause, but hard to verify. Let's just print |
|
415 // it as a hint. |
|
416 tty->print_raw_cr("Please check if any of your loaded .so files has " |
|
417 "enabled executable stack (see man page execstack(8))"); |
413 } else { |
418 } else { |
414 // Accessing stack address below sp may cause SEGV if current |
419 // Accessing stack address below sp may cause SEGV if current |
415 // thread has MAP_GROWSDOWN stack. This should only happen when |
420 // thread has MAP_GROWSDOWN stack. This should only happen when |
416 // current thread was created by user code with MAP_GROWSDOWN flag |
421 // current thread was created by user code with MAP_GROWSDOWN flag |
417 // and then attached to VM. See notes in os_linux.cpp. |
422 // and then attached to VM. See notes in os_linux.cpp. |