【问题标题】:Delphi Web Script: How to Debug a specific Script FunctionDelphi Web 脚本:如何调试特定的脚本函数
【发布时间】:2011-08-22 10:31:14
【问题描述】:

感谢 TdwsDebugger,我可以使用以下方法调试完整的脚本:

Debugger := TdwsDebugger.Create(nil);
Debugger.BeginDebug(Execution);

在我的用例中,我不运行整个脚本,而只运行它的一个函数:

var Func: IInfo;
begin
  [...]
  Func := Execution.Info.Func['MyFunction'];
  Result := Func.Call.Value;
end;

我现在如何调用 TdwsDebugger?

【问题讨论】:

    标签: delphi dwscript


    【解决方案1】:

    您必须在执行时手动设置调试器(通过 BeginDebug/EndDebug)。 您可以在 UDebuggerTests 中看到一些示例代码。

    您可以在 EndDebug 之前拨打电话。

    【讨论】:

    • 我不太明白。 BeginDebug 运行整个程序并终止它。当我稍后(在EndDebug 之前)尝试通过Execution.Info.Func['MyFunction'] 获取该功能时,它会引发一个AV。 UDebuggerTests.pas 也没有帮助我,因为它还运行整个程序(甚至多次)。我的目标是创建一个带有调试器的简单 IDE,以逐行执行脚本。
    • 是的,您必须至少运行一次程序,因为它将初始化堆栈、全局变量等。虽然在终止执行之前,您可以手动调用函数。在最坏的情况下,您可以在主程序中调用单个函数(除了用户函数之外,没有别的,这意味着您可以自己将该调用附加到用户的脚本中),并且在该函数的处理程序中,您可以调用你自己的函数。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-04-11
    • 2018-12-02
    • 2019-08-15
    • 1970-01-01
    • 2010-09-15
    • 2015-07-23
    • 2021-04-05
    相关资源
    最近更新 更多