class Guard::Internals::Debugging

def _notify(*args)

def _notify(*args)
  UI.debug "Command execution: #{args.join(' ')}"
end

def _reset

reset singleton - called by tests
def _reset
  @started = false
  return unless @traced
  TRACES.each { |mod, meth| _untrace(mod, meth) }
  @traced = false
end

def _trace(mod, meth, &block)

def _trace(mod, meth, &block)
  Tracing.trace(mod, meth, &block)
end

def _untrace(mod, meth)

def _untrace(mod, meth)
  Tracing.untrace(mod, meth)
end

def start

* traces execution of Kernel.system and backtick calls
* Set the logging level to `:debug`
* aborts on thread exceptions

Sets up debugging:
def start
  return if @started ||= false
  @started = true
  Thread.abort_on_exception = true
  UI.level = Logger::DEBUG
  TRACES.each { |mod, meth| _trace(mod, meth, &method(:_notify)) }
  @traced = true
end

def stop

def stop
  return unless @started ||= false
  UI.level = Logger::INFO
  _reset
end