我有兴趣制作一个程序,它将采用c#代码并允许我逐行执行该代码 - 一个调试器。
如何在不编写完整的c#编译器的情况下进行此项目?我正在使用Microsoft Visual Studio,但我希望我的软件尽可能独立于其调试器实现。
答案 0 :(得分:5)
您正在寻找托管调试API ICorDebug
您可以使用csc.exe
编译代码(这包含在标准的.Net Framework安装中并由CSharpCodeProvider class包装),然后执行程序集,附加调试器,并逐步执行代码。 / p>
请注意,您可能仍需要一个C#解析器来确定您在源中的位置。
PDB文件将包含一些此类信息;我不知道多少钱。
请注意,我们认为理所当然的VS调试器中的大多数功能(特别是Watch窗口和变量工具提示)都需要痛苦的重新实现。 (Func-eval S)