【问题标题】:dwscript - can anyone help with editor-debugger examples please?dwscript - 任何人都可以帮助编辑调试器示例吗?
【发布时间】:2010-12-29 17:28:34
【问题描述】:

我正在查看 Delphi see here 的出色 dwscript,它提供了一组有用的类来为您的应用程序实现内置的 pascal 脚本。对于如何将提供的调试接口与编辑器链接在一起的示例,我将非常感谢一些帮助,以便我可以创建断点(理想情况下可以查看手表)。请问有人走过这条路吗? 谢谢, 布赖恩

【问题讨论】:

  • 联系 Eric,他已经有一个 DWScript 的闭源最小 IDE,不会很快发布,另一方面,实现起来并不难,但你需要知道如何调试过程发生...玩得开心;-)

标签: delphi editor debugging dwscript


【解决方案1】:

大部分调试器文档目前都在这篇文章中

http://delphitools.info/2010/12/03/spotlight-on-dwss-idebugger/

此外,自最初的 DWScript II(在 SourceForge 上)以来,调试器界面并没有太大变化(如果有的话),因此希望那里的旧演示仍然可以进行最小的调整。

http://sourceforge.net/projects/dws/

对于断点,您基本上只需根据断点列表检查在 DoDebug/OnDebug 中获得的 Expr 的源位置。一种简单有效的方法是仅使用 TBits - 将其用作布尔数组,其中行具有断点)。 评估/观察需要查找一个符号,它会给你它的堆栈地址,然后你可以在堆栈中查找值。

我将尝试添加/更新 v2.2 的调试任务演示(除非其他人在我之前这样做;))

编辑:截至 2014 年 11 月 2 日,有一个 TdwsDebugger 组件以方便调试任务。

【讨论】:

  • 感谢 Eric,我非常感谢您认为是“最佳实践”的任何内容。我看到了您出色的调试器注释,通常会开始使用(比如)SynEdit,尽管我刚刚在stackoverflow.com/questions/4505588/…re Scintilla 看到了注释。过去连接脚本调试器让我意识到一个必须考虑的“案例”的数量,例如插入/删除维护断点位置,所以一个例子会很棒。布赖恩。
  • FWIW,我也在使用 SynEdit。在编辑期间,您可以使用 Marks[] 作为断点(直接使用 TSynEditMark)。在执行之前,您可以构建一个 TBits 以在 DoDebug 中进行快速检查。在执行过程中,如果断点被清除/设置,只需相应地更新 TBits。
  • 如果您希望能够保存 TBits 的内容,或者直接从内存分配中设置/获取位 - 请查看:delphimax.wordpress.com/2010/09/16/…
  • 我不认为有一种简单明了的方法可以简单地监视当前行号而无需实际进入调试模式。我有一个小脚本应用程序,我只想直观地向用户显示当前正在执行哪一行,但无需进入代码等。我找到了expr.ScriptPos,但似乎我必须实际进入调试模式才能访问这个。
猜你喜欢
  • 2020-05-10
  • 2019-10-12
  • 2012-10-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-12-13
  • 2020-12-01
相关资源
最近更新 更多