8054008: Using -XX:-LazyBootClassLoader crashes with ACCESS_VIOLATION on Win 64bit.

Wed, 12 Nov 2014 13:12:35 -0500

author
jiangli
date
Wed, 12 Nov 2014 13:12:35 -0500
changeset 7362
10842d23f20a
parent 7359
2f445c5048df
child 7363
3375833a603e

8054008: Using -XX:-LazyBootClassLoader crashes with ACCESS_VIOLATION on Win 64bit.
Summary: Only enable the assert for current_stack_pointer after stub routines become available.
Reviewed-by: dholmes, roland, lfoltan

src/os_cpu/windows_x86/vm/os_windows_x86.cpp file | annotate | diff | comparison | revisions
     1.1 --- a/src/os_cpu/windows_x86/vm/os_windows_x86.cpp	Mon Nov 17 19:35:09 2014 +0000
     1.2 +++ b/src/os_cpu/windows_x86/vm/os_windows_x86.cpp	Wed Nov 12 13:12:35 2014 -0500
     1.3 @@ -635,7 +635,11 @@
     1.4  #ifndef PRODUCT
     1.5  void os::verify_stack_alignment() {
     1.6  #ifdef AMD64
     1.7 -  assert(((intptr_t)os::current_stack_pointer() & (StackAlignmentInBytes-1)) == 0, "incorrect stack alignment");
     1.8 +  // The current_stack_pointer() calls generated get_previous_sp stub routine.
     1.9 +  // Only enable the assert after the routine becomes available.
    1.10 +  if (StubRoutines::code1() != NULL) {
    1.11 +    assert(((intptr_t)os::current_stack_pointer() & (StackAlignmentInBytes-1)) == 0, "incorrect stack alignment");
    1.12 +  }
    1.13  #endif
    1.14  }
    1.15  #endif

mercurial