Top


定義場所(file name)

hotspot/src/share/vm/services/dtraceAttacher.cpp

名前(function name)

void DTrace::set_extended_dprobes(bool flag) {

本体部(body)

  {- -------------------------------------------
  (1) ExtendedDTraceProbes オプションの値を flag 引数で指定された値にセットするだけ.
      ---------------------------------------- -}

      // explicit setting of ExtendedDTraceProbes flag
      set_bool_flag("ExtendedDTraceProbes", flag);

  {- -------------------------------------------
  (1) flag 引数の値に応じて, DTrace::enable_dprobes() または DTrace::disable_dprobes() を呼び出す.
      ---------------------------------------- -}

      // make sure that the fine grained flags reflect the change.
      if (flag) {
        enable_dprobes(DTRACE_ALL_PROBES);
      } else {
        /*
         * FIXME: Revisit this: currently all-client-detach detection
         * does not work and hence disabled. The following scheme does
         * not work. So, we have to disable fine-grained flags here.
         *
         * disable_dprobes call has to be delayed till next "detach all "event.
         * This is to be  done so that concurrent DTrace clients that may
         * have enabled one or more fine grained dprobes and may be running
         * still. On "detach all" clients event, we would sync ExtendedDTraceProbes
         * with  fine grained flags which would take care of disabling fine grained flags.
         */
        disable_dprobes(DTRACE_ALL_PROBES);
      }
    }

This document is available under the GNU GENERAL PUBLIC LICENSE Version 2.