src/os_cpu/linux_x86/vm/thread_linux_x86.cpp

changeset 8987
9ffa0d7ed932
parent 8877
f04097176542
child 9041
95a08233f46c
equal deleted inserted replaced
8986:6470230caf2a 8987:9ffa0d7ed932
43 assert(this->is_Java_thread(), "must be JavaThread"); 43 assert(this->is_Java_thread(), "must be JavaThread");
44 JavaThread* jt = (JavaThread *)this; 44 JavaThread* jt = (JavaThread *)this;
45 45
46 // If we have a last_Java_frame, then we should use it even if 46 // If we have a last_Java_frame, then we should use it even if
47 // isInJava == true. It should be more reliable than ucontext info. 47 // isInJava == true. It should be more reliable than ucontext info.
48 if (jt->has_last_Java_frame()) { 48 if (jt->has_last_Java_frame() && jt->frame_anchor()->walkable()) {
49 *fr_addr = jt->pd_last_frame(); 49 *fr_addr = jt->pd_last_frame();
50 return true; 50 return true;
51 } 51 }
52 52
53 // At this point, we don't have a last_Java_frame, so 53 // At this point, we don't have a last_Java_frame, so

mercurial