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