Поделиться через


Поддержка отладки COM+ Visual Basic, контрастная с ПОМОЩЬЮ ФУНКЦИИ ALT

COM+ удаляет или уменьшает несколько ограничений отладки с помощью Microsoft Visual Basic 6.0 и MT. В следующем списке перечислены изменения, которые можно ожидать с помощью COM+:

  • Отладка нескольких компонентов— в COM+, можно выполнять отладку сценариев, в которых клиент, работающий в одном экземпляре интегрированной среды разработки, вызывает любое количество БИБЛИОТЕК DLL, работающих в другой в качестве группы проектов. Объекты в сгруппированных проектах DLL могут вызывать друг друга произвольно, потоки контекста по мере необходимости. Конечно, это также работает, если библиотеки DLL и клиент находятся в одной группе проектов в одном экземпляре интегрированной среды разработки.

  • Ограничения отладки Class_Initialize и событий Class_Terminate— с помощью COM+можно поместить код в Class_Initialize и Class_Terminate события компонента приложения COM+, даже если этот код пытается получить доступ к объекту или соответствующему объекту контекста. Вы можете задать точки останова там и использовать часы. Вы также можете задать точки останова в событии Class_Terminate.

    Хотя он больше не нужен в качестве обходного решения, вы все равно можете реализовать интерфейс IObjectControl и использовать его методы активации и деактивации, если необходимо выполнить код во время запуска и завершения работы компонента. Теперь можно поместить точки останова в код для методов Деактивации или CanBePooled .

  • Наблюдая за объектами XML— с помощью COM+, можно добавлять часы для переменных объектов, возвращаемых COM+, включая возвращаемые значения из методов Сейф Ref, GetObjectContext и IObjectContext::CreateInstance.

  • Повышенная стабильность при сбое компонентов— в COM+, сбой компонента больше не будет останавливать Visual Basic (который выполняется в том же процессе, что и отлаживаемый компонент). Например, поддержка сбоев повторной активации JIT теперь позволяет просмотреть контекст объекта во время отладки.

  • Отладчик может повторно активировать объекты, выпущенные COM+. Как и в СЛУЧАЕ с ПОМОЩЬЮ ИНСТРУКЦИИ ПО ЗАПРОСУ, Visual Basic 6.0 может повторно активировать объекты COM+ во время отладки через клиент. Из-за того, как Visual Basic 6.0 обнаруживает сведения об объектах, это ожидаемое поведение. Рассмотрим следующий пример кода:

    Dim obj As Object
    Set obj = CreateObject("MyApp.MyClass")
    obj.Test  'Call the user-defined subroutine named Test.
    Set obj = Nothing
    

    Если obj. Метод тестирования вызывает IObjectContext::SetComplete, COM+ немедленно освобождает obj из памяти, но obj еще не задано значение Nothing. Когда обж. Возвращается проверка, отладчик Visual Basic вызывает QueryInterface в obj для интерфейса IProvideClassInfo. Оболочка контекста, связанная с obj, создает новый экземпляр MyApp.MyClass для обслуживания вызова QueryInterface . В результате этот неинициализированный объект будет отображаться в отладчике после obj. Возвращается тест. Этот объект отображается только в отладчике и удаляется последующей инструкцией, чтобы задать obj значение Nothing.

Отладка скомпилированных компонентов Visual Basic

Отладка в интегрированной среде разработки Visual Basic