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


Диспетчер отладки сеансов

Диспетчер отладки сеансов (SDM) управляет любым количеством обработчиков отладки (DE), которые отладят любое количество программ в нескольких процессах на любом количестве компьютеров. Помимо мультиплексера подсистемы отладки, SDM предоставляет единое представление сеанса отладки интегрированной среде разработки.

Операция диспетчера отладки сеанса

Диспетчер отладки сеансов (SDM) управляет DE. Одновременно на компьютере может работать несколько обработчиков отладки. Чтобы мультиплексировать DEs, SDM упаковывает ряд интерфейсов из DEs и предоставляет их интегрированной среде разработки в виде единого интерфейса.

Для повышения производительности некоторые интерфейсы не мультиплексируются. Вместо этого они используются непосредственно из DE, и вызовы этих интерфейсов не проходят через SDM. Например, интерфейсы, используемые с памятью, кодом и контекстами документов, не мультиплексированы, так как они ссылаются на определенную инструкцию, память или документ в определенной программе, отлаживаемой определенным DE. Ни один другой de не должен участвовать в этом уровне взаимодействия.

Это не верно для всех контекстов. Вызовы интерфейса контекста оценки выражения осуществляются через SDM. Во время оценки выражений SDM оборачивает интерфейс IDebugExpression2, который он предоставляет интегрированной среде разработки, потому что когда это выражение оценивается, это может затрагивать несколько DE, которые являются отладочными программами в одном процессе, выполняющемся, возможно, в одном потоке.

SDM обычно выступает в качестве механизма делегирования, но он может выступать в качестве механизма трансляции. Например, во время вычисления выражений SDM выступает в качестве механизма распространения, чтобы уведомить все DE о том, что они могут запускать код в указанном потоке. Аналогичным образом, когда SDM получает событие остановки, оно посылает программам сигнал о необходимости завершения работы. При вызове шага SDM оповещает программы о возможности продолжать выполнение. Точки останова также передаются каждому DE.

SDM не отслеживает текущую программу, поток или кадр стека. Сведения о процессе, программе и потоке отправляются в SDM вместе с конкретными событиями отладки.

См. также