< prev index next >

src/share/vm/shark/sharkCacheDecache.cpp

Print this page




 142     oopmap()->set_oop(slot2reg(offset));
 143   }
 144 
 145   // Record the value in the debuginfo if necessary
 146   if (local_slot_needs_debuginfo(index, value)) {
 147     locarray()->append(slot2lv(offset, local_location_type(index, addr)));
 148   }
 149 }
 150 
 151 void SharkDecacher::end_frame() {
 152   // Record the scope
 153   methodHandle null_mh;
 154   debug_info()->describe_scope(
 155     pc_offset(),
 156     null_mh,
 157     target(),
 158     bci(),
 159     true,
 160     false,
 161     false,

 162     debug_info()->create_scope_values(locarray()),
 163     debug_info()->create_scope_values(exparray()),
 164     debug_info()->create_monitor_values(monarray()));
 165 
 166   // Finish recording the debug information
 167   debug_info()->end_safepoint(pc_offset());
 168 }
 169 
 170 void SharkCacher::process_stack_slot(int          index,
 171                                      SharkValue** addr,
 172                                      int          offset) {
 173   SharkValue *value = *addr;
 174 
 175   // Read the value from the frame if necessary
 176   if (stack_slot_needs_read(index, value)) {
 177     *addr = SharkValue::create_generic(
 178       value->type(),
 179       read_value_from_frame(
 180         SharkType::to_stackType(value->basic_type()),
 181         adjusted_offset(value, offset)),




 142     oopmap()->set_oop(slot2reg(offset));
 143   }
 144 
 145   // Record the value in the debuginfo if necessary
 146   if (local_slot_needs_debuginfo(index, value)) {
 147     locarray()->append(slot2lv(offset, local_location_type(index, addr)));
 148   }
 149 }
 150 
 151 void SharkDecacher::end_frame() {
 152   // Record the scope
 153   methodHandle null_mh;
 154   debug_info()->describe_scope(
 155     pc_offset(),
 156     null_mh,
 157     target(),
 158     bci(),
 159     true,
 160     false,
 161     false,
 162     false,
 163     debug_info()->create_scope_values(locarray()),
 164     debug_info()->create_scope_values(exparray()),
 165     debug_info()->create_monitor_values(monarray()));
 166 
 167   // Finish recording the debug information
 168   debug_info()->end_safepoint(pc_offset());
 169 }
 170 
 171 void SharkCacher::process_stack_slot(int          index,
 172                                      SharkValue** addr,
 173                                      int          offset) {
 174   SharkValue *value = *addr;
 175 
 176   // Read the value from the frame if necessary
 177   if (stack_slot_needs_read(index, value)) {
 178     *addr = SharkValue::create_generic(
 179       value->type(),
 180       read_value_from_frame(
 181         SharkType::to_stackType(value->basic_type()),
 182         adjusted_offset(value, offset)),


< prev index next >