Greetings,
Kindly asking for reviews for the following change: Bug: https://bugs.openjdk.java.net/browse/JDK-8028412 Webrev: http://cr.openjdk.java.net/~mgronlun/8028412/webrev01/ Description: AsynchGetCallTrace() uses platform specific code for stack frame traversals. On x86, there currently exist a defensive construct that practically disallows stack traversal over entry_frame code stubs, such as StubRoutine(1) frames: src/cpu/x86/vm/frame_x86.cpp b/src/cpu/x86/vm/frame_x86.cpp: bool frame::safe_for_sender(JavaThread* thread) { . if (!Interpreter::contains(_pc) && _cb->frame_size() <= 0) { //assert(0, "Invalid frame_size"); return false; } . Since entry frames (such as StubRoutine(1)) have a frame size of 0, the code returns prematurely. Fix is to move this frame size check post handling of is_entry_frame(), where the code_stubs are processed. Testing completed: Sun Studio Profiler reproducer testcase SpecJBB2005 Kitchensink Thanks Markus
