Mercurial > hg > truffle
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 |