2011-11-22 51 views
7

我想知道是否以及如何在調試環境中使用Mono編譯器作爲服務(請參閱herehere),以在調試器的運行時查詢/修改/可視化/ etc對象。目前,根據this SO post羅斯林CTP不支持此功能。Mono編譯器作爲服務可以在調試環境中使用嗎?

+0

這聽起來有點像你可以用REPL外殼做什麼(csharp.exe或gsharp.exe) – IanNorton

+0

不知道我跟 - 我希望能夠把一個斷點在我的代碼在調試過程中(例如使用Visual Studio),並在REPL循環中執行測試語句。這可以用csharp.exe或gsharp.exe以某種方式完成嗎? –

回答

2

是的,這完全有可能。我無法告訴你關於如何實現這個的確切細節,但是看看MonoDevelop從v2.8(或者更早)開始實際實現你的想法。在MonoDevelop中,您有一個REPL Pad可用,它允許您在應用程序由於斷點而停止的相同上下文中輸入C#代碼。我在調試視圖中添加了MD的簡單屏幕截圖,並打開了REPL打擊墊。由於MD是開源的,您可以查看源代碼是如何實現的,並剝離您需要的部分。

Screenshot of MonoDevelop using Direct/REPL evaluation window while debugging

+0

太棒了,不知道!謝謝,大衛 –

+0

順便說一句,單聲道傢伙有一些討論,將REPL附加到任何給定的單聲道進程(這應該是可能的,因爲單聲道softdebugger被掛接到VM中)是非常棒的。 IIRC在這方面做了一些工作。也許你可以趕上並完成資料來源,這正是你所需要的,你會爲單聲道做出貢獻;) – Dyna

0

我覺得應該是可行的,因爲Mono Soft Debugger是單聲道運行,所以你可以使用「調試器代理」的一部分:

調試劑是一種以提供 調試服務的單聲道運行時內部的模塊客戶端程序。

因此,一種替代方案可能會嘗試與編譯器中的Mono Soft Debugger作爲服務(它運行在Mono運行時之上)進行交互。

由於在MonoDevelop IDE中使用了Mono Soft Debugger,因此您還可以調查此IDE是否可用於您要查找的內容。

相關問題