【发布时间】:2022-04-08 16:05:36
【问题描述】:
我有兴趣制作一个程序,该程序将采用 c# 代码并允许我逐行执行该代码 - 一个调试器。
我将如何在不编写整个 c# 编译器的情况下进行这个项目?我正在使用 Microsoft Visual Studio,但我希望我的软件尽可能独立于它们的调试器实现。
【问题讨论】:
-
编写视觉工作室替代方案?
标签: c# architecture
我有兴趣制作一个程序,该程序将采用 c# 代码并允许我逐行执行该代码 - 一个调试器。
我将如何在不编写整个 c# 编译器的情况下进行这个项目?我正在使用 Microsoft Visual Studio,但我希望我的软件尽可能独立于它们的调试器实现。
【问题讨论】:
标签: c# architecture
您正在寻找托管调试 API ICorDebug。
您可以使用csc.exe 编译代码(这包含在标准的.Net Framework 安装中并由CSharpCodeProvider class 包装),然后执行程序集,附加调试器,并逐步执行代码。
请注意,您可能仍需要 C#解析器 来确定您在源代码中的位置。
PDB 文件将包含一些此类信息;不知道多少钱。
请注意,我们认为理所当然的 VS 调试器中的大多数功能(尤其是 Watch 窗口和可变工具提示)都需要痛苦地重新实现。 (Func-evals)
【讨论】: