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


Регистрация пользовательского модуля отладки

Отладчик должен зарегистрировать в качестве соглашения, так же как регистрация фабрики класса COM следует с помощью Visual Studio с помощью подраздел реестра Visual Studio.

Примечание

Примере показано, как зарегистрировать обработчик отладки можно найти в образце TextInterpreter, которая построена как часть Учебник. Создание обработчика отладка с использованием модели COM библиотеки ATL.

Серверный процесс библиотеки DLL

Обычно обработчик отладки реализован в собственном библиотеку DLL как сервер модели COM. Это означает, что отладчик должен зарегистрировать его с идентификатором CLSID фабрики класса COM, прежде чем Visual Studio может получить к нему доступ. Затем отладчик должен зарегистрировать с самим Visual Studio, чтобы задать все свойства (в противном случае как метрики) отладчик поддерживает. Выбор метрик, написанных к подразделу реестра Visual Studio, зависит от обработчика отладки отладчик поддерживает функции.

Вспомогательные методы SDK для отладки описывает не только расположении реестра, необходимые зарегистрирован обработчик отладки; он также описывает библиотеку dbgmetric.lib, которая содержит несколько полезных функций и объявления для разработчиков C++, которые делают манипулирующ реестр.

Пример

Ниже приведен типичный пример из образца TextInterpreter (), показывающие, как использовать SetMetric функции (из dbgmetric.lib), чтобы зарегистрировать обработчик отладки с помощью Visual Studio. , Передаваемых метрики также определяются в dbgmetric.lib.

Примечание

TextInterpreter чуть-чуть-косточки обработчик отладки; он не выполняет инструмент-и поэтому не выполняет регистр-любые другие функции.Полное обработчик отладки были бы весь список SetMetric вызовы или их количество, по одному для каждой функции отладчик поддерживает.

// Define base registry subkey to Visual Studio.
static const WCHAR strRegistrationRoot[] = L"Software\\Microsoft\\VisualStudio\\8.0";

HRESULT CTextInterpreterModule::RegisterServer(BOOL bRegTypeLib, const CLSID * pCLSID)
{
    SetMetric(metrictypeEngine, __uuidof(Engine), metricName, L"Text File", false, strRegistrationRoot);
    SetMetric(metrictypeEngine, __uuidof(Engine), metricCLSID, CLSID_Engine, false, strRegistrationRoot);
    SetMetric(metrictypeEngine, __uuidof(Engine), metricProgramProvider, CLSID_MsProgramProvider, false, strRegistrationRoot);
   
    return base::RegisterServer(bRegTypeLib, pCLSID);
}

См. также

Ссылки

Вспомогательные методы SDK для отладки

Другие ресурсы

Создание пользовательского модуля отладки

Tutorial: Building a Debug Engine Using ATL COM