hotspot/src/share/vm/prims/jvmtiImpl.cpp
changeset 9405 d2e9ee78c3c1
parent 8661 3dc8a18ac563
child 10565 dc90c239f4ec
equal deleted inserted replaced
9404:779459d8fdd6 9405:d2e9ee78c3c1
    36 #include "runtime/deoptimization.hpp"
    36 #include "runtime/deoptimization.hpp"
    37 #include "runtime/handles.hpp"
    37 #include "runtime/handles.hpp"
    38 #include "runtime/handles.inline.hpp"
    38 #include "runtime/handles.inline.hpp"
    39 #include "runtime/interfaceSupport.hpp"
    39 #include "runtime/interfaceSupport.hpp"
    40 #include "runtime/javaCalls.hpp"
    40 #include "runtime/javaCalls.hpp"
       
    41 #include "runtime/os.hpp"
    41 #include "runtime/serviceThread.hpp"
    42 #include "runtime/serviceThread.hpp"
    42 #include "runtime/signature.hpp"
    43 #include "runtime/signature.hpp"
    43 #include "runtime/vframe.hpp"
    44 #include "runtime/vframe.hpp"
    44 #include "runtime/vframe_hp.hpp"
    45 #include "runtime/vframe_hp.hpp"
    45 #include "runtime/vm_operations.hpp"
    46 #include "runtime/vm_operations.hpp"
   937   // zombie_ok == true here so that our nmethod that was just
   938   // zombie_ok == true here so that our nmethod that was just
   938   // made into a zombie can be locked.
   939   // made into a zombie can be locked.
   939   nmethodLocker::lock_nmethod(nm, true /* zombie_ok */);
   940   nmethodLocker::lock_nmethod(nm, true /* zombie_ok */);
   940   return event;
   941   return event;
   941 }
   942 }
       
   943 
   942 JvmtiDeferredEvent JvmtiDeferredEvent::dynamic_code_generated_event(
   944 JvmtiDeferredEvent JvmtiDeferredEvent::dynamic_code_generated_event(
   943       const char* name, const void* code_begin, const void* code_end) {
   945       const char* name, const void* code_begin, const void* code_end) {
   944   JvmtiDeferredEvent event = JvmtiDeferredEvent(TYPE_DYNAMIC_CODE_GENERATED);
   946   JvmtiDeferredEvent event = JvmtiDeferredEvent(TYPE_DYNAMIC_CODE_GENERATED);
   945   event._event_data.dynamic_code_generated.name = name;
   947   // Need to make a copy of the name since we don't know how long
       
   948   // the event poster will keep it around after we enqueue the
       
   949   // deferred event and return. strdup() failure is handled in
       
   950   // the post() routine below.
       
   951   event._event_data.dynamic_code_generated.name = os::strdup(name);
   946   event._event_data.dynamic_code_generated.code_begin = code_begin;
   952   event._event_data.dynamic_code_generated.code_begin = code_begin;
   947   event._event_data.dynamic_code_generated.code_end = code_end;
   953   event._event_data.dynamic_code_generated.code_end = code_end;
   948   return event;
   954   return event;
   949 }
   955 }
   950 
   956 
   966         _event_data.compiled_method_unload.code_begin);
   972         _event_data.compiled_method_unload.code_begin);
   967       // done with the deferred event so unlock the nmethod
   973       // done with the deferred event so unlock the nmethod
   968       nmethodLocker::unlock_nmethod(nm);
   974       nmethodLocker::unlock_nmethod(nm);
   969       break;
   975       break;
   970     }
   976     }
   971     case TYPE_DYNAMIC_CODE_GENERATED:
   977     case TYPE_DYNAMIC_CODE_GENERATED: {
   972       JvmtiExport::post_dynamic_code_generated_internal(
   978       JvmtiExport::post_dynamic_code_generated_internal(
   973         _event_data.dynamic_code_generated.name,
   979         // if strdup failed give the event a default name
       
   980         (_event_data.dynamic_code_generated.name == NULL)
       
   981           ? "unknown_code" : _event_data.dynamic_code_generated.name,
   974         _event_data.dynamic_code_generated.code_begin,
   982         _event_data.dynamic_code_generated.code_begin,
   975         _event_data.dynamic_code_generated.code_end);
   983         _event_data.dynamic_code_generated.code_end);
       
   984       if (_event_data.dynamic_code_generated.name != NULL) {
       
   985         // release our copy
       
   986         os::free((void *)_event_data.dynamic_code_generated.name);
       
   987       }
   976       break;
   988       break;
       
   989     }
   977     default:
   990     default:
   978       ShouldNotReachHere();
   991       ShouldNotReachHere();
   979   }
   992   }
   980 }
   993 }
   981 
   994