Подскажите, пожалуйста, если кто знает, как получить позицию исполнения скрипта от IActiveScript. Ситуевина следующая — я записываю лог исполнения скрипта (лог вызовов моих процедур) и мне очень бы хотелось добавить в лог номер строки скрипта, но вот что-то я никак не соображу, как это сделать, если это вообще возможно.
Re: Как узнать позицию исполнения от IActiveScript
Здравствуйте, ury0005, Вы писали:
U>Подскажите, пожалуйста, если кто знает, как получить позицию исполнения скрипта от IActiveScript. Ситуевина следующая — я записываю лог исполнения скрипта (лог вызовов моих процедур) и мне очень бы хотелось добавить в лог номер строки скрипта, но вот что-то я никак не соображу, как это сделать, если это вообще возможно.
Через отладочные интерфейсы? Тогда просто отладчиком пройти.
Практически, в скрипт вставляется отладочная печать через функцию, экспортированную в скрипт.
А если скрипт ломается при выполенении, то что-то насчет строки на которой он сломался скриптовая машина отдает назад.
GS
Re[2]: Как узнать позицию исполнения от IActiveScript
Всем спасибо за внимание, проблема порешена. Как говорится пока на всех форумах вопрос не задашь озареньне не наступит.
Если вдруг кому интересно, то делается все так:
1. В IActiveScriptSite реализуется IActiveScriptSiteDebug интерфейс (в этом сильно помогает IProcessDebugManager), после чего можно пользоваться интерфейсом IDebugStackFrameSnifferEx запрашиваемого из IActiveScript.
2. Далее добираемся до IDebugDocumentText и пользуем его метод GetPositionOfContext.
Конечно проктологический способ удаления гланд, ну да ладно — имеет право на жизнь.