kd.bos.script.jsengine.debug

## 类 KDebugExecutor

- java.lang.Object
- - kd.bos.script.jsengine.debug.KDebugExecutor

- 所有已实现的接口:
    DebugExecutor

      public class KDebugExecutor
      extends java.lang.Object
      implements DebugExecutor

       启动start -->调试结束
              1) Context.end触发： KDebugCommander.stopListener.onEndContext->onEndContext->doStop+KDebugManager.terminal()
              2) doStop确保执行完最后一步: stop->resume-->...
              3) KDebugExecutor.start.Thread: buildDebugResult(null),running=false->handDebugResult->dm.stopped():-----------脚本调试结束。

- - ### 构造器概要

    构造器
    构造器和说明
    `KDebugExecutor(java.lang.String debugId, ScriptLookup lookup, DebugStepBack dcb)`

  - ### 方法概要

    所有方法 实例方法 具体方法
    限定符和类型 | 方法和说明
    --- | ---
    `void` | `addBreakPoint(int[] breakPointLines)`
    `void` | `addWatch(java.lang.String... exps)` 设置表达式查看
    `void` | `clearBreakPoints()`
    `void` | `clearWatches()`
    `DebugResult` | `evaluate(java.lang.String expression)`
    `DebugResult` | `getAtBreakPoint(boolean waitFor)`
    `DebugManager` | `getDebugManager()`
    `DebugResult` | `getVariables()`
    `DebugResult` | `getWatches()`
    `boolean` | `hasSourceInfo()`
    `<V> V` | `inspect(java.util.concurrent.Callable<V> callable)`
    `void` | `removeBreakPoint(int[] breakPointLines)`
    `void` | `removeWatch(java.lang.String... exps)`
    `DebugResult` | `resume()`
    `DebugResult` | `runToLine(int lineNo)`
    `void` | `setBreakPoint(int[] breakPointLines)` 设置断点
    `void` | `setWatch(java.lang.String... exps)`
    `void` | `start(DebugManager dm, java.lang.String[] preScriptNames, ScriptInfo scriptInfo, DebugParameter debugParam, java.lang.String[] watches, boolean ignoreSystemScripts, ScriptExecutor executor, kd.bos.script.jsengine.debug.KDebugTerminalHandler terminalHandler)`
    `DebugResult` | `stepInto()`
    `DebugResult` | `stepOut()`
    `DebugResult` | `stepOver()`
    `DebugResult` | `stop()` 调试命令

    - ### 从类继承的方法 java.lang.Object

      `equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### 构造器详细资料

    - #### KDebugExecutor

          public KDebugExecutor(java.lang.String debugId,
                                ScriptLookup lookup,
                                DebugStepBack dcb)

  - ### 方法详细资料

    - #### getDebugManager

          public DebugManager getDebugManager()

    - #### start

          public void start(DebugManager dm,
                            java.lang.String[] preScriptNames,
                            ScriptInfo scriptInfo,
                            DebugParameter debugParam,
                            java.lang.String[] watches,
                            boolean ignoreSystemScripts,
                            ScriptExecutor executor,
                            kd.bos.script.jsengine.debug.KDebugTerminalHandler terminalHandler)

    - #### stop

          public DebugResult stop()

      从接口复制的说明: `DebugExecutor`
      调试命令
      指定者:
        `stop` 在接口中 `DebugExecutor`

    - #### stepOver

          public DebugResult stepOver()

      指定者:
        `stepOver` 在接口中 `DebugExecutor`

    - #### stepInto

          public DebugResult stepInto()

      指定者:
        `stepInto` 在接口中 `DebugExecutor`

    - #### stepOut

          public DebugResult stepOut()

      指定者:
        `stepOut` 在接口中 `DebugExecutor`

    - #### resume

          public DebugResult resume()

      指定者:
        `resume` 在接口中 `DebugExecutor`

    - #### runToLine

          public DebugResult runToLine(int lineNo)

      指定者:
        `runToLine` 在接口中 `DebugExecutor`

    - #### getAtBreakPoint

          public DebugResult getAtBreakPoint(boolean waitFor)

      指定者:
        `getAtBreakPoint` 在接口中 `DebugExecutor`

    - #### addBreakPoint

          public void addBreakPoint(int[] breakPointLines)

      指定者:
        `addBreakPoint` 在接口中 `DebugExecutor`

    - #### setBreakPoint

          public void setBreakPoint(int[] breakPointLines)

      从接口复制的说明: `DebugExecutor`
      设置断点
      指定者:
        `setBreakPoint` 在接口中 `DebugExecutor`

    - #### clearBreakPoints

          public void clearBreakPoints()

      指定者:
        `clearBreakPoints` 在接口中 `DebugExecutor`

    - #### removeBreakPoint

          public void removeBreakPoint(int[] breakPointLines)

      指定者:
        `removeBreakPoint` 在接口中 `DebugExecutor`

    - #### addWatch

          public void addWatch(java.lang.String... exps)

      从接口复制的说明: `DebugExecutor`
      设置表达式查看
      指定者:
        `addWatch` 在接口中 `DebugExecutor`

    - #### setWatch

          public void setWatch(java.lang.String... exps)

      指定者:
        `setWatch` 在接口中 `DebugExecutor`

    - #### removeWatch

          public void removeWatch(java.lang.String... exps)

      指定者:
        `removeWatch` 在接口中 `DebugExecutor`

    - #### clearWatches

          public void clearWatches()

      指定者:
        `clearWatches` 在接口中 `DebugExecutor`

    - #### getWatches

          public DebugResult getWatches()

      指定者:
        `getWatches` 在接口中 `DebugExecutor`

    - #### getVariables

          public DebugResult getVariables()

      指定者:
        `getVariables` 在接口中 `DebugExecutor`

    - #### evaluate

          public DebugResult evaluate(java.lang.String expression)

      指定者:
        `evaluate` 在接口中 `DebugExecutor`

    - #### hasSourceInfo

          public boolean hasSourceInfo()

    - #### inspect

          public <V> V inspect(java.util.concurrent.Callable<V> callable)

      指定者:
        `inspect` 在接口中 `DebugExecutor`