640 if (thread_handle != NULL) { |
640 if (thread_handle != NULL) { |
641 log_info(os, thread)("Thread started (tid: %u, attributes: %s)", |
641 log_info(os, thread)("Thread started (tid: %u, attributes: %s)", |
642 thread_id, describe_beginthreadex_attributes(buf, sizeof(buf), stack_size, initflag)); |
642 thread_id, describe_beginthreadex_attributes(buf, sizeof(buf), stack_size, initflag)); |
643 } else { |
643 } else { |
644 log_warning(os, thread)("Failed to start thread - _beginthreadex failed (%s) for attributes: %s.", |
644 log_warning(os, thread)("Failed to start thread - _beginthreadex failed (%s) for attributes: %s.", |
645 strerror(errno), describe_beginthreadex_attributes(buf, sizeof(buf), stack_size, initflag)); |
645 os::errno_name(errno), describe_beginthreadex_attributes(buf, sizeof(buf), stack_size, initflag)); |
646 } |
646 } |
647 |
647 |
648 if (thread_handle == NULL) { |
648 if (thread_handle == NULL) { |
649 // Need to clean up stuff we've allocated so far |
649 // Need to clean up stuff we've allocated so far |
650 CloseHandle(osthread->interrupt_event()); |
650 CloseHandle(osthread->interrupt_event()); |
2439 if (PrintMiscellaneous && Verbose) { |
2439 if (PrintMiscellaneous && Verbose) { |
2440 char buf[256]; |
2440 char buf[256]; |
2441 jio_snprintf(buf, sizeof(buf), "Execution protection violation " |
2441 jio_snprintf(buf, sizeof(buf), "Execution protection violation " |
2442 "at " INTPTR_FORMAT |
2442 "at " INTPTR_FORMAT |
2443 ", unguarding " INTPTR_FORMAT ": %s", addr, |
2443 ", unguarding " INTPTR_FORMAT ": %s", addr, |
2444 page_start, (res ? "success" : strerror(errno))); |
2444 page_start, (res ? "success" : os::strerror(errno))); |
2445 tty->print_raw_cr(buf); |
2445 tty->print_raw_cr(buf); |
2446 } |
2446 } |
2447 |
2447 |
2448 // Set last_addr so if we fault again at the same address, we don't |
2448 // Set last_addr so if we fault again at the same address, we don't |
2449 // end up in an endless loop. |
2449 // end up in an endless loop. |