comparison src/cpu/sparc/vm/frame_sparc.cpp @ 10405:f2110083203d

8005849: JEP 167: Event-Based JVM Tracing Reviewed-by: acorn, coleenp, sla Contributed-by: Karen Kinnear <karen.kinnear@oracle.com>, Bengt Rutisson <bengt.rutisson@oracle.com>, Calvin Cheung <calvin.cheung@oracle.com>, Erik Gahlin <erik.gahlin@oracle.com>, Erik Helin <erik.helin@oracle.com>, Jesper Wilhelmsson <jesper.wilhelmsson@oracle.com>, Keith McGuigan <keith.mcguigan@oracle.com>, Mattias Tobiasson <mattias.tobiasson@oracle.com>, Markus Gronlund <markus.gronlund@oracle.com>, Mikael Auno <mikael.auno@oracle.com>, Nils Eliasson <nils.eliasson@oracle.com>, Nils Loodin <nils.loodin@oracle.com>, Rickard Backman <rickard.backman@oracle.com>, Staffan Larsen <staffan.larsen@oracle.com>, Stefan Karlsson <stefan.karlsson@oracle.com>, Yekaterina Kantserova <yekaterina.kantserova@oracle.com>
author sla
date Mon, 10 Jun 2013 11:30:51 +0200
parents f36e073d56a4
children e0c9a1d29eb4
comparison
equal deleted inserted replaced
10404:d0add7016434 10405:f2110083203d
250 CodeBlob* sender_blob = CodeCache::find_blob_unsafe(sender_pc); 250 CodeBlob* sender_blob = CodeCache::find_blob_unsafe(sender_pc);
251 if (sender_pc == NULL || sender_blob == NULL) { 251 if (sender_pc == NULL || sender_blob == NULL) {
252 return false; 252 return false;
253 } 253 }
254 254
255 // Could be a zombie method
256 if (sender_blob->is_zombie() || sender_blob->is_unloaded()) {
257 return false;
258 }
259
260 // Could be a zombie method
261 if (sender_blob->is_zombie() || sender_blob->is_unloaded()) {
262 return false;
263 }
264
255 // It should be safe to construct the sender though it might not be valid 265 // It should be safe to construct the sender though it might not be valid
256 266
257 frame sender(_SENDER_SP, younger_sp, adjusted_stack); 267 frame sender(_SENDER_SP, younger_sp, adjusted_stack);
258 268
259 // Do we have a valid fp? 269 // Do we have a valid fp?
292 bool jcw_safe = (jcw <= thread->stack_base()) && ( jcw > sender_fp); 302 bool jcw_safe = (jcw <= thread->stack_base()) && ( jcw > sender_fp);
293 303
294 return jcw_safe; 304 return jcw_safe;
295 } 305 }
296 306
297 // If the frame size is 0 something is bad because every nmethod has a non-zero frame size 307 // If the frame size is 0 something (or less) is bad because every nmethod has a non-zero frame size
298 // because you must allocate window space 308 // because you must allocate window space
299 309
300 if (sender_blob->frame_size() == 0) { 310 if (sender_blob->frame_size() <= 0) {
301 assert(!sender_blob->is_nmethod(), "should count return address at least"); 311 assert(!sender_blob->is_nmethod(), "should count return address at least");
302 return false; 312 return false;
303 } 313 }
304 314
305 // The sender should positively be an nmethod or call_stub. On sparc we might in fact see something else. 315 // The sender should positively be an nmethod or call_stub. On sparc we might in fact see something else.