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


Отладка COM-сервера и контейнера

COM-приложения выполняют ряд задач за пределами прямого управления программиста. Обмен данными между библиотеками DLL, количество использования объектов и операций буфера обмена — это лишь несколько областей, в которых может возникнуть непредвиденное поведение. В этом случае первым шагом является отслеживание источника проблемы.

Отладчик Visual Studio поддерживает переход между контейнерами и серверами. Это включает возможность пошагового выполнения вызовов удаленных процедур (RPC).

Отладка COM-сервера и контейнера в одном решении

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

Отладка COM-контейнера аналогична отладке стандартной программы. Одно из различий заключается в отладке события, которое создает обратный вызов (например, перетаскивание данных по приложению контейнера). В этом случае необходимо задать точку останова в функции обратного вызова.

Отладка серверного приложения без сведений о контейнере

Если у вас нет или не требуется использовать сведения об отладке для приложения контейнера, запуск отладки серверного приложения — это трехэтапный процесс:

  1. Начните отладку сервера в качестве обычного приложения.

  2. Установите точки останова по желанию.

  3. Запустите приложение контейнера.

Отладка приложения изоляции сервера и домена (SDI)

Если выполняется отладка серверного приложения и приложения изоляции домена (SDI), необходимо указать /Embedding или /Automation в свойстве аргументов командной строки в диалоговом окне "Страницы свойств проекта " для проектов C/C++, C#или Visual Basic.

С помощью этих аргументов командной строки отладчик может запустить серверное приложение, как будто оно было запущено из контейнера. Запуск контейнера из Program Manager или File Manager приведет к тому, что контейнер будет использовать экземпляр сервера, запущенного в отладчике.

Чтобы открыть диалоговое окно "Страницы свойств проекта ", щелкните проект правой кнопкой мыши в обозревателе решений и выберите пункт "Свойства" в контекстном меню. Чтобы найти свойство аргументов командной строки, разверните категорию свойств конфигурации и щелкните страницу отладки.