org.eclipse.ease

## Interface IDebugEngine

All Superinterfaces:
  IScriptEngine

All Known Subinterfaces:
  IPythonDebugEngine

All Known Implementing Classes:
  JythonDebuggerEngine, Py4jDebuggerEngine, RhinoDebuggerEngine, TestSuiteScriptEngine

    public interface IDebugEngine
    extends IScriptEngine

Interface to be implemented by a script debug engine.

### Field Summary

### Fields inherited from interface org.eclipse.ease.IScriptEngine

`TRACE_SCRIPT_ENGINE`

### Method Summary

All Methods Instance Methods Abstract Methods
`ScriptStackTrace` `getExceptionStackTrace()` Get the stack trace of the last thrown exception of the current thread.
`ScriptStackTrace` `getExceptionStackTrace(java.lang.Object thread)` Get the stack trace of the last thrown exception of the given thread.
`ScriptStackTrace` `getStackTrace()` Get the current stack trace.
`java.util.Collection<EaseDebugVariable>` `getVariables(java.lang.Object scope)` Get variables within a specific scope or child elements for a given object
`java.lang.Object` `removeVariable(java.lang.String name)` Remove a variable from the scope.
`void` `setupDebugger(ILaunch launch, boolean suspendOnStartup, boolean suspendOnScriptLoad, boolean showDynamicCode)`

### Methods inherited from interface org.eclipse.ease.IScriptEngine

`addExecutionListener, addSecurityCheck, executeAsync, executeSync, getDescription, getErrorStream, getExecutedFile, getInputStream, getLaunch, getMonitor, getName, getOutputStream, getVariable, getVariables, hasVariable, inject, injectUI, isFinished, join, registerJar, removeExecutionListener, removeSecurityCheck, schedule, setCloseStreamsOnTerminate, setErrorStream, setInputStream, setOutputStream, setVariable, terminate, terminateCurrent`

### Method Detail

#### getStackTrace

    ScriptStackTrace getStackTrace()

Get the current stack trace. A trace is a stack starting with the root file executed by the engine. Function calls and files (called via include command) will be put on top of that stack. Each entry may contain a pointer to the current line number executed. Traces might be created dynamically on demand or accumulated during execution depending on the underlying engine.

Returns:
  current stack trace

#### getExceptionStackTrace

    ScriptStackTrace getExceptionStackTrace()

Get the stack trace of the last thrown exception of the current thread. Will be populated when an exception is thrown by the script engine. Can be evaluated in a try/catch statement within the script. Only available during script runtime.

Returns:
  last exception stack trace or `null`

#### getExceptionStackTrace

    ScriptStackTrace getExceptionStackTrace(java.lang.Object thread)

Get the stack trace of the last thrown exception of the given thread. Will be populated when an exception is thrown by the script engine. Can be evaluated in a try/catch statement within the script. Only available during script runtime.

Parameters:
  `thread` - thread to get last exception stacktrace from
Returns:
  last exception stack trace or `null`

#### setupDebugger

    void setupDebugger(ILaunch launch,
                       boolean suspendOnStartup,
                       boolean suspendOnScriptLoad,
                       boolean showDynamicCode)

#### removeVariable

    java.lang.Object removeVariable(java.lang.String name)

Remove a variable from the scope.

Parameters:
  `name` - variable to be removed.
Returns:

#### getVariables

    java.util.Collection<EaseDebugVariable> getVariables(java.lang.Object scope)

Get variables within a specific scope or child elements for a given object

Parameters:
  `scope` - scope or parent object
Returns:
  variables assigned to scope