comparison src/os_cpu/linux_sparc/vm/os_linux_sparc.cpp @ 20206:1cddf026d2cc

8050165: linux-sparcv9: NMT detail causes assert((intptr_t*)younger_sp[FP->sp_offset_in_saved_window()] == (intptr_t*)((intptr_t)sp - STACK_BIAS)) failed: younger_sp must be valid Summary: Fixed native memory tracking stack walking Reviewed-by: coleenp, mikael
author zgu
date Fri, 18 Jul 2014 11:14:20 -0700
parents 7f77d17d0f13
children fbc0575cc9e4
comparison
equal deleted inserted replaced
20205:e248acd6cfcf 20206:1cddf026d2cc
140 ExtendedPC epc = fetch_frame_from_context(ucVoid, &sp, &fp); 140 ExtendedPC epc = fetch_frame_from_context(ucVoid, &sp, &fp);
141 return frame(sp, fp, epc.pc()); 141 return frame(sp, fp, epc.pc());
142 } 142 }
143 143
144 frame os::get_sender_for_C_frame(frame* fr) { 144 frame os::get_sender_for_C_frame(frame* fr) {
145 return frame(fr->sender_sp(), fr->link(), fr->sender_pc()); 145 return frame(fr->sender_sp(), frame::unpatchable, fr->sender_pc());
146 } 146 }
147 147
148 frame os::current_frame() { 148 frame os::current_frame() {
149 fprintf(stderr, "current_frame()");
150
151 intptr_t* sp = StubRoutines::Sparc::flush_callers_register_windows_func()(); 149 intptr_t* sp = StubRoutines::Sparc::flush_callers_register_windows_func()();
152 frame myframe(sp, frame::unpatchable, 150 frame myframe(sp, frame::unpatchable,
153 CAST_FROM_FN_PTR(address, os::current_frame)); 151 CAST_FROM_FN_PTR(address, os::current_frame));
154 if (os::is_first_C_frame(&myframe)) { 152 if (os::is_first_C_frame(&myframe)) {
155 // stack is not walkable 153 // stack is not walkable