Re[3]: Как выполнить отдельную IL команду из C#
От: Lloyd Россия  
Дата: 12.04.07 13:23
Оценка: 2 (1)
Здравствуйте, cainam, Вы писали:

L>>Если ты хочешь отлаживать пользовательский код, то предусмотри в своем генераторе возможность вставить после каждой строчки кода вызова колбэка. В этом случае в режиме работы просто будешь передавать пустой колбэк, а в режиме отладки колбэк будет перехватывать управление и делать что ты захочешь (подсвечивать текущую строку, показывать значение переменных, ждать когда пользователь нажмет Next, ...).


C>Да, с этим всё понятно, но проблема немного в другом. Мне нужно перегенерить строчку написанную пользователем в IL, а затем исполнить эти IL команды. Вопрос в том возможно ли выполнить их отдельно, т.е. можно ли запустить AssemblyBuilder под дебагом, чтобы он выполнял код только до определённой точки?


Возможно, но это будет тебе стоить столько, что лучше сделать так, как я предложил.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re: Как выполнить отдельную IL команду из C#
От: Lloyd Россия  
Дата: 11.04.07 12:47
Оценка: +1
Здравствуйте, cainam, Вы писали:

C>Здравствуйте, не подскажите, как можно выполнять отдельные IL команды из C#. Дело в том, что мне требуется реализовать обработку кода написанного пользователем, и перекомпилить данный код в IL. С этим особых проблем нет, но мне нужно так же добавить возможность пошаговой отладки данного кода.


Данного — это какого? Написанного пользователем или IL-а?

C>Насколько я понял, единственная возможность выполнить IL из программы, это при помощи динамического создания кода, а если мне требуется выполнить только одну команду? Неужели каждый раз необходимо пересоздавать сборку, классы и т.д.


Если ты хочешь отлаживать пользовательский код, то предусмотри в своем генераторе возможность вставить после каждой строчки кода вызова колбэка. В этом случае в режиме работы просто будешь передавать пустой колбэк, а в режиме отладки колбэк будет перехватывать управление и делать что ты захочешь (подсвечивать текущую строку, показывать значение переменных, ждать когда пользователь нажмет Next, ...).

C>Буду очень рад любой информации. Заранее спасибо.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Как выполнить отдельную IL команду из C#
От: cainam Россия  
Дата: 11.04.07 12:06
Оценка:
Здравствуйте, не подскажите, как можно выполнять отдельные IL команды из C#. Дело в том, что мне требуется реализовать обработку кода написанного пользователем, и перекомпилить данный код в IL. С этим особых проблем нет, но мне нужно так же добавить возможность пошаговой отладки данного кода. Насколько я понял, единственная возможность выполнить IL из программы, это при помощи динамического создания кода, а если мне требуется выполнить только одну команду? Неужели каждый раз необходимо пересоздавать сборку, классы и т.д. Буду очень рад любой информации. Заранее спасибо.
Re: Как выполнить отдельную IL команду из C#
От: adontz Грузия http://adontz.wordpress.com/
Дата: 11.04.07 12:08
Оценка:
Здравствуйте, cainam, Вы писали:

Я думаю, корректнее зарегистрировать приложение как отладчик.
A journey of a thousand miles must begin with a single step © Lau Tsu
Re[2]: Как выполнить отдельную IL команду из C#
От: cainam Россия  
Дата: 11.04.07 12:21
Оценка:
Здравствуйте, adontz, Вы писали:

A>Здравствуйте, cainam, Вы писали:


A>Я думаю, корректнее зарегистрировать приложение как отладчик.


Можно поподробнее, что вы имеете ввиду?
Re[3]: Как выполнить отдельную IL команду из C#
От: adontz Грузия http://adontz.wordpress.com/
Дата: 11.04.07 12:28
Оценка:
Здравствуйте, cainam, Вы писали:

A>>Я думаю, корректнее зарегистрировать приложение как отладчик.

C>Можно поподробнее, что вы имеете ввиду?

http://msdn2.microsoft.com/en-us/library/ms679266.aspx
A journey of a thousand miles must begin with a single step © Lau Tsu
Re: Как выполнить отдельную IL команду из C#
От: adontz Грузия http://adontz.wordpress.com/
Дата: 11.04.07 12:35
Оценка:
Здравствуйте, cainam, Вы писали:

Упс. Тут же про C#

http://blogs.msdn.com/jmstall/archive/2004/09/30/236281.aspx
ICorDebug
A journey of a thousand miles must begin with a single step © Lau Tsu
Re[2]: Как выполнить отдельную IL команду из C#
От: adontz Грузия http://adontz.wordpress.com/
Дата: 11.04.07 14:57
Оценка:
Здравствуйте, Lloyd, Вы писали:

L>Если ты хочешь отлаживать пользовательский код, то предусмотри в своем генераторе возможность вставить после каждой строчки кода вызова колбэка.


А с исключениями что делать?
A journey of a thousand miles must begin with a single step © Lau Tsu
Re[3]: Как выполнить отдельную IL команду из C#
От: Lloyd Россия  
Дата: 11.04.07 15:11
Оценка:
Здравствуйте, adontz, Вы писали:

A>А с исключениями что делать?


Догадайся.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[2]: Как выполнить отдельную IL команду из C#
От: Аноним  
Дата: 12.04.07 13:01
Оценка:
Здравствуйте, Lloyd, Вы писали:

L>Данного — это какого? Написанного пользователем или IL-а?


Написанного пользователем


L>Если ты хочешь отлаживать пользовательский код, то предусмотри в своем генераторе возможность вставить после каждой строчки кода вызова колбэка. В этом случае в режиме работы просто будешь передавать пустой колбэк, а в режиме отладки колбэк будет перехватывать управление и делать что ты захочешь (подсвечивать текущую строку, показывать значение переменных, ждать когда пользователь нажмет Next, ...).


Да, с этим всё понятно, но проблема немного в другом. Мне нужно перегенерить строчку написанную пользователем в IL, а затем исполнить эти IL команды. Вопрос в том возможно ли выполнить их отдельно, т.е. можно ли запустить AssemblyBuilder под дебагом, чтобы он выполнял код только до определённой точки?
Re[2]: Как выполнить отдельную IL команду из C#
От: cainam Россия  
Дата: 12.04.07 13:04
Оценка:
Здравствуйте, Lloyd, Вы писали:

L>Данного — это какого? Написанного пользователем или IL-а?


Написанного пользователем


L>Если ты хочешь отлаживать пользовательский код, то предусмотри в своем генераторе возможность вставить после каждой строчки кода вызова колбэка. В этом случае в режиме работы просто будешь передавать пустой колбэк, а в режиме отладки колбэк будет перехватывать управление и делать что ты захочешь (подсвечивать текущую строку, показывать значение переменных, ждать когда пользователь нажмет Next, ...).


Да, с этим всё понятно, но проблема немного в другом. Мне нужно перегенерить строчку написанную пользователем в IL, а затем исполнить эти IL команды. Вопрос в том возможно ли выполнить их отдельно, т.е. можно ли запустить AssemblyBuilder под дебагом, чтобы он выполнял код только до определённой точки?

Забыл подписаться
Re[4]: Как выполнить отдельную IL команду из C#
От: cainam Россия  
Дата: 12.04.07 13:36
Оценка:
Здравствуйте, Lloyd, Вы писали:

L>Возможно, но это будет тебе стоить столько, что лучше сделать так, как я предложил.


Мдя, наверное это будет самое верное решение, правда хотелось обойтись без влезания в дебри... Спасибо за совет. Теперь msdn в зубы и
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.