我想制作自己的c#调试器 - 如何做到这一点?我应该使用什么工具?

时间:2010-11-21 03:33:43

标签: c# architecture

我有兴趣制作一个程序,它将采用c#代码并允许我逐行执行该代码 - 一个调试器。

如何在不编写完整的c#编译器的情况下进行此项目?我正在使用Microsoft Visual Studio,但我希望我的软件尽可能独立于其调试器实现。

1 个答案:

答案 0 :(得分:5)

您正在寻找托管调试API ICorDebug 您可以使用csc.exe编译代码(这包含在标准的.Net Framework安装中并由CSharpCodeProvider class包装),然后执行程序集,附加调试器,并逐步执行代码。 / p>

请注意,您可能仍需要一个C#解析器来确定您在源中的位置。
PDB文件将包含一些此类信息;我不知道多少钱。

请注意,我们认为理所当然的VS调试器中的大多数功能(特别是Watch窗口和变量工具提示)都需要痛苦的重新实现。 (Func-eval S)