7

I'd like to know if and how I might be able to use the Mono compiler as a service (see here and here ) within a debugging context to query/modify/visualize/etc objects at runtime within the debugger. At the moment, per this SO post the Roslyn CTP does not support this feature.

4

2 回答 2

2

是的,这完全有可能。我无法告诉您如何实现这一点的确切细节,但请看一看 MonoDevelop,它实际上从 v2.8(或者更早版本)开始实现了您的想法。在 MonoDevelop 中,您有一个可用的 REPL Pad,它允许您在应用程序因断点而停止的相同上下文中输入 C# 代码。我在调试视图中附加了一个简单的 MD 屏幕截图,并且 REPL 垫打开了。由于 MD 是开源的,您可以查看源代码是如何实现的,并剥离您需要的部分。

MonoDevelop 在调试时使用 Direct/REPL 评估窗口的屏幕截图

于 2011-12-13T22:19:54.603 回答
0

我认为这应该是可行的,因为Mono Soft Debugger是 Mono 运行时的一部分,因此您可以使用“调试器代理”:

调试器代理是 mono 运行时中的一个模块,它为客户端程序提供调试服务。

因此,一种替代方法可能是尝试与编译器中的 Mono Soft Debugger 交互作为服务(在 Mono 运行时之上运行)。

由于在MonoDevelop IDE中使用了 Mono Soft Debugger,您还可以调查该 IDE 是否可用于您正在寻找的东西。

于 2011-12-12T17:19:28.733 回答