src/os_cpu/bsd_x86/vm/thread_bsd_x86.cpp

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

mercurial