< prev index next >

src/hotspot/share/runtime/interfaceSupport.cpp

Print this page




 235     CodeBlob* cb = sfs.current()->cb();
 236     if (cb != NULL && cb->oop_maps() ) {
 237       // Find oopmap for current method
 238       const ImmutableOopMap* map = cb->oop_map_for_return_address(sfs.current()->pc());
 239       assert(map != NULL, "no oopmap found for pc");
 240       found = map->has_derived_pointer();
 241     }
 242   }
 243   if (found) {
 244     // $$$ Not sure what to do here.
 245     /*
 246     Scavenge::invoke(0);
 247     */
 248   }
 249 #endif
 250 }
 251 
 252 
 253 void InterfaceSupport::verify_stack() {
 254   JavaThread* thread = JavaThread::current();
 255   BufferedValuesDealiaser dealiaser(thread);
 256   ResourceMark rm(thread);
 257   // disabled because it throws warnings that oop maps should only be accessed
 258   // in VM thread or during debugging
 259 
 260   if (!thread->has_pending_exception()) {
 261     // verification does not work if there are pending exceptions
 262     StackFrameStream sfs(thread);
 263     CodeBlob* cb = sfs.current()->cb();
 264       // In case of exceptions we might not have a runtime_stub on
 265       // top of stack, hence, all callee-saved registers are not going
 266       // to be setup correctly, hence, we cannot do stack verify
 267     if (cb != NULL && !(cb->is_runtime_stub() || cb->is_uncommon_trap_stub())) return;
 268 
 269     for (; !sfs.is_done(); sfs.next()) {
 270       sfs.current()->verify(sfs.register_map());
 271     }
 272   }
 273 }
 274 
 275 
 276 void InterfaceSupport::verify_last_frame() {
 277   JavaThread* thread = JavaThread::current();
 278   BufferedValuesDealiaser dealiaser(thread);
 279   ResourceMark rm(thread);
 280   RegisterMap reg_map(thread);
 281   frame fr = thread->last_frame();
 282   fr.verify(&reg_map);
 283 }
 284 
 285 
 286 #endif // ASSERT
 287 
 288 
 289 void InterfaceSupport_init() {
 290 #ifdef ASSERT
 291   if (ScavengeALot || FullGCALot) {
 292     srand(ScavengeALotInterval * FullGCALotInterval);
 293   }
 294 #endif
 295 }
 296 
 297 #ifdef ASSERT
 298 // JRT_LEAF rules:




 235     CodeBlob* cb = sfs.current()->cb();
 236     if (cb != NULL && cb->oop_maps() ) {
 237       // Find oopmap for current method
 238       const ImmutableOopMap* map = cb->oop_map_for_return_address(sfs.current()->pc());
 239       assert(map != NULL, "no oopmap found for pc");
 240       found = map->has_derived_pointer();
 241     }
 242   }
 243   if (found) {
 244     // $$$ Not sure what to do here.
 245     /*
 246     Scavenge::invoke(0);
 247     */
 248   }
 249 #endif
 250 }
 251 
 252 
 253 void InterfaceSupport::verify_stack() {
 254   JavaThread* thread = JavaThread::current();

 255   ResourceMark rm(thread);
 256   // disabled because it throws warnings that oop maps should only be accessed
 257   // in VM thread or during debugging
 258 
 259   if (!thread->has_pending_exception()) {
 260     // verification does not work if there are pending exceptions
 261     StackFrameStream sfs(thread);
 262     CodeBlob* cb = sfs.current()->cb();
 263       // In case of exceptions we might not have a runtime_stub on
 264       // top of stack, hence, all callee-saved registers are not going
 265       // to be setup correctly, hence, we cannot do stack verify
 266     if (cb != NULL && !(cb->is_runtime_stub() || cb->is_uncommon_trap_stub())) return;
 267 
 268     for (; !sfs.is_done(); sfs.next()) {
 269       sfs.current()->verify(sfs.register_map());
 270     }
 271   }
 272 }
 273 
 274 
 275 void InterfaceSupport::verify_last_frame() {
 276   JavaThread* thread = JavaThread::current();

 277   ResourceMark rm(thread);
 278   RegisterMap reg_map(thread);
 279   frame fr = thread->last_frame();
 280   fr.verify(&reg_map);
 281 }
 282 
 283 
 284 #endif // ASSERT
 285 
 286 
 287 void InterfaceSupport_init() {
 288 #ifdef ASSERT
 289   if (ScavengeALot || FullGCALot) {
 290     srand(ScavengeALotInterval * FullGCALotInterval);
 291   }
 292 #endif
 293 }
 294 
 295 #ifdef ASSERT
 296 // JRT_LEAF rules:


< prev index next >