class_docstr: Core :py:class:`.PluginManager` class which manages registration
  of plugin objects and 1:N hook calling.
  
  You can register new hooks by calling :py:meth:`add_hookspecs(module_or_class)
  <.PluginManager.add_hookspecs>`.
  You can register plugin objects (which contain hooks) by calling
  :py:meth:`register(plugin) <.PluginManager.register>`.  The :py:class:`.PluginManager`
  is initialized with a prefix that is searched for in the names of the dict
  of registered plugin objects.
  
  For debugging purposes you can call :py:meth:`.PluginManager.enable_tracing`
  which will subsequently send debug information to the trace helper.
docstr: enable tracing of hook calls and return an undo function. 
docstr_tok: ["enable","tracing","of","hook","calls","and","return","an","undo","function","."]
code: def enable_tracing(self):
      """enable tracing of hook calls and return an undo function."""
      hooktrace = self.trace.root.get("hook")
  
      def before(hook_name, methods, kwargs):
          hooktrace.root.indent += 1
          hooktrace(hook_name, kwargs)
  
      def after(outcome, hook_name, methods, kwargs):
          if outcome.excinfo is None:
              hooktrace(
                  "finish", hook_name, "-->", outcome.get_result()
              )
          hooktrace.root.indent -= 1
  
      return self.add_hookcall_monitoring(before, after)
  
imports: import inspect
  import sys
  from .None import _tracing
  from .callers import _Result
  from .hooks import HookImpl, _HookRelay, _HookCaller, normalize_hookimpl_opts
  import warnings
label_desc: Use image node_id 23 for calling the PluginManager obj's underlying member method code with example usage: obj.enable_tracing() and returns: self