【发布时间】:2012-09-10 16:30:32
【问题描述】:
可能重复:
What is a good approach to building a debugger for a .NET language?
我有一种 Lisp 风格的语言,我想为其构建调试器。我的语言在这里 - https://github.com/bryanedds/aml 。
我可能会将其编译为 IL。如果对编写调试器有帮助,我会先编写编译器。但是,我想知道构建调试器的一些方法是什么。我考虑为 Visual Studio 构建它,但这很困难,因为它似乎需要我通过 COM 与 VS 交互,这意味着我需要用 C 或 C++ 编写调试器(UGH!)。我希望 Visual Studio Debugger 开发有一个我不知道的更好的故事。
查看 SO 上 .NET 调试的其他线程,我看到 IL 包含源文件坐标,所以我想知道这是否意味着我不需要编写最初怀疑的那么多 COM 代码(EG - 步骤只要编译后的 IL 具有源文件坐标,就可以直接进行调试,无需任何 COM 代码。
或者,我可以考虑使用另一个 IDE,该 IDE 可能具有更愉快的 .NET 语言调试路径。有 Eclipse,但它似乎对 .NET 语言调试没有任何特别的支持。
也许具有最佳调试器构建故事的 IDE 可能是 MonoDevelop。当然,我需要它与 MS .NET 一起工作,而不仅仅是 Mono。但是,它的文档相当简陋。有人有在那里构建调试器的经验吗?
所以,如您所见,我对这一切感到迷茫。我只需要一些方法来构建一个带有断点的简单调试器,并为我的 .NET 语言使用变量检查进行单步调试。我更喜欢用 F# 编写大部分代码,因为我的语言就是用 F# 编写的。
【问题讨论】:
-
请不要重新发布您之前提出的完全相同的问题。上一个关门了,为什么这个关不了?您可以尝试编辑您的问题以使其更具建设性,然后将其标记为版主注意以重新打开它。
-
@svick - 我看不出这个问题有什么问题(我的意思是,它有点混乱,但不是很明显有缺陷)。之前关闭的问题没有留下任何可以提出改进途径的问题。 Bryan 需要做出哪些改变才能让它变得更好?
-
是的,有人在没有任何解释的情况下关闭了前一个,所以我试图将问题更改为不那么主观(现在我问不同的方法是什么而不问哪些更好)。没有任何解释为什么上一个问题被关闭,我不知道我还应该改变什么。
-
@kvb 我不确定这个问题到底为什么被关闭了。但我确实认为重新发布它不是正确的做法,重新打开旧问题可能是。
-
@svick - 理论上我同意,但从实际的角度来看,我不确定 Bryan 是否能够重新打开它......他怎么能找出主持人认为需要做什么?被改变?那么他如何获得足够的关注,让足够多的人重新投票呢?