--- old/src/os_cpu/windows_x86/vm/os_windows_x86.cpp 2016-07-31 23:33:19.726300654 -0700 +++ new/src/os_cpu/windows_x86/vm/os_windows_x86.cpp 2016-07-31 23:33:19.662300465 -0700 @@ -496,7 +496,15 @@ __asm { mov frameptr, ebp }; + // ebp (frameptr) is for this frame (_get_previous_fp). We want the ebp for the + // caller of os::current_frame*(), so go up two frames. However, for + // optimized builds, _get_previous_fp() will be inlined, so only go + // up 1 frame in that case. +#ifdef _NMT_NOINLINE_ + return **(intptr_t***)frameptr; +#else return *frameptr; +#endif } #endif // !AMD64