hotspot/src/share/vm/prims/jvmtiExport.cpp
// post a DYNAMIC_CODE_GENERATED event for a given environment
// used by GenerateEvents
void JvmtiExport::post_dynamic_code_generated(JvmtiEnv* env, const char *name,
                                              const void *code_begin, const void *code_end)
{
  {- -------------------------------------------
  (1) (変数宣言など)
      ---------------------------------------- -}
      JavaThread* thread = JavaThread::current();
  {- -------------------------------------------
  (1) (トレース出力)
      ---------------------------------------- -}
      EVT_TRIG_TRACE(JVMTI_EVENT_DYNAMIC_CODE_GENERATED,
                     ("JVMTI [%s] dynamic code generated event triggered (by GenerateEvents)",
                      JvmtiTrace::safe_get_thread_name(thread)));
  {- -------------------------------------------
  (1) (env 引数で指定された JvmtiEnv で
       JVMTI_EVENT_DYNAMIC_CODE_GENERATED イベントが有効になっていない場合は, 
       何もせずに終了)
      ---------------------------------------- -}
      if (env->is_enabled(JVMTI_EVENT_DYNAMIC_CODE_GENERATED)) {
  {- -------------------------------------------
  (1) (トレース出力)
      ---------------------------------------- -}
        EVT_TRACE(JVMTI_EVENT_DYNAMIC_CODE_GENERATED,
                  ("JVMTI [%s] dynamic code generated event sent for %s",
                   JvmtiTrace::safe_get_thread_name(thread), name));
  {- -------------------------------------------
  (1) コールバック関数が設定されていれば, コールバック関数を呼び出す.
      (設定されていなければ, 何もしない)
      ---------------------------------------- -}
        JvmtiEventMark jem(thread);
        JvmtiJavaThreadEventTransition jet(thread);
        jint length = (jint)pointer_delta(code_end, code_begin, sizeof(char));
        jvmtiEventDynamicCodeGenerated callback = env->callbacks()->DynamicCodeGenerated;
        if (callback != NULL) {
          (*callback)(env->jvmti_external(), name, (void*)code_begin, length);
        }
      }
    }
This document is available under the GNU GENERAL PUBLIC LICENSE Version 2.