Debugging 为专有语言创建调试IDE

Debugging 为专有语言创建调试IDE,debugging,ide,Debugging,Ide,我使用的是一个相当保守的专有语言WIL/Winbatch,它有一个糟糕的IDE(Winbatch studio) 我想开发一个替代环境;但是,如果没有设置断点、单步执行和检查变量的能力,就没有意义了。人们是如何开始研究如何为专有语言实现调试器的?这合法吗? 我想我有点被一种思维定势所束缚,即调试器部分必须能够在WIL中提供给它的语句被执行时检查它们,对吗?所以我必须捕获解释器的输出?或者这仅仅是一个使用任何语言读取内存中位置的问题? 提前谢谢。你为什么和这种语言联系这么紧密?如果它没有得到很好的

我使用的是一个相当保守的专有语言WIL/Winbatch,它有一个糟糕的IDE(Winbatch studio)

我想开发一个替代环境;但是,如果没有设置断点、单步执行和检查变量的能力,就没有意义了。人们是如何开始研究如何为专有语言实现调试器的?这合法吗? 我想我有点被一种思维定势所束缚,即调试器部分必须能够在WIL中提供给它的语句被执行时检查它们,对吗?所以我必须捕获解释器的输出?或者这仅仅是一个使用任何语言读取内存中位置的问题?
提前谢谢。

你为什么和这种语言联系这么紧密?如果它没有得到很好的支持,那么还有很多其他的方法可以使用。无论如何,要真正回答您的问题,难度取决于它是编译语言还是解释语言,以及您是否可以访问任何源代码(当然,您似乎没有)。这就是说,这将是一个非常具有挑战性的项目,因为您必须对编译后的代码进行反向工程才能使其具有任何意义。你最好把时间花在学习另一种(更好的)语言上


如果您能告诉我们为什么要使用这种语言,我们可能会给您一些帮助。

在那里并成功地完成了任务,以下是需要记住的事项:

  • 将其构建为您的团队已经熟悉并喜欢的IDE的插件/扩展。他们会感谢你提供了一个与他们真正知道如何使用的界面一致的界面,而且你可以完全专注于使你的语言与众不同的特性
  • 您必须学习您的语言的调试协议。在我们的例子中,我们可以访问解释语言的运行时的源代码。在其他情况下,您可能会找到GDB本地或远程调试接口的文档,您可以链接到该语言调试协议的库,或者甚至可以找出调用堆栈的外观,并包装Windows调试API以在后台对其进行分析
  • 不要构建超出语言提供的内容。添加调试特性需要花费大量时间,而且它们有一个相当恼人的习惯,即在目标语言版本更新时需要进行重大修改或完全重写

  • 这不是一个真正的选择问题。我的雇主多年来一直致力于这门语言,而我只是一只“工蜂”,试图充分利用它。Winbatch提供解释版本,您可以购买用于制作PEs的编译器(我们有),并支付额外费用。我建议您尝试说服您的雇主,让他们知道您在使用这种语言时遇到的问题。但我能理解为什么有时候你只是在打一场败仗。在这种情况下,我会看看Eclipse,因为它为您提供了一个良好的基础。这里有一个链接可能会有所帮助:。IBM过去在developerWorks上有一系列关于这方面的文章,但现在似乎已经消失了。+1用于确定这里的真正问题,即使用一种弱专有语言,而周围没有生态系统。雇主们似乎永远不会明白,当工人们花时间创建ide和调试器来弥补winbatch等语言的弱点时,他们在毫无理由地浪费时间重新启动程序。