Можно ли использовать Mono-компилятор как сервис в контексте отладки? - PullRequest
7 голосов
/ 22 ноября 2011

Я хотел бы знать, смогу ли я использовать компилятор Mono в качестве службы (см. здесь и здесь ) в контексте отладки для запроса / изменения/ визуализировать / etc объекты во время выполнения в отладчике.В настоящее время в этой SO-публикации Roslyn CTP не поддерживает эту функцию.

Ответы [ 2 ]

2 голосов
/ 14 декабря 2011

Да, это вполне возможно.Я не могу рассказать вам точные подробности о том, как это реализовать, но взгляните на MonoDevelop, который фактически реализует вашу идею начиная с v2.8 (или, может быть, раньше).В MonoDevelop у вас есть REPL Pad, который позволяет вам вводить код C # в том же контексте, в котором ваше приложение остановлено из-за точки останова.Я прикрепил простой скриншот MD в режиме отладки и открою панель REPL.Поскольку MD является открытым исходным кодом, вы можете проверить источники, как это было реализовано, и вырезать нужные вам части.

Screenshot of MonoDevelop using Direct/REPL evaluation window while debugging

0 голосов
/ 12 декабря 2011

Я думаю, что это должно быть осуществимо, потому что Mono Soft Debugger является частью среды выполнения Mono, поэтому вы можете использовать «Агент отладчика»:

Агент отладчика - это модуль внутри моно среды выполнения, который предлагает услуги по отладке клиентских программ.

Таким образом, одной из альтернатив может быть попытка взаимодействия с Mono Soft Debugger в вашем компиляторе в качестве службы (которая выполняется поверх среды выполнения Mono).

Поскольку Mono Soft Debugger используется в MonoDevelop IDE , вы также можете выяснить, можно ли использовать эту IDE для того, что вы ищете.

...