Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Ниже приведены основные интерфейсы для расширения отладчика с помощью пакета SDK Для Visual Studio.
Обсуждение
Эти интерфейсы в основном используются для создания обработчика отладки (DE). Они организованы здесь по категориям:
-
Сущности, которые могут реализовать интерфейсы, являются следующими:
Обработчик отладки (DE)
Поставщик портов (PS)
Средство оценки выражений (EE)
Visual Studio (VS)
Точки останова
Эти интерфейсы связаны с реализацией и отслеживанием точек останова.
| Интерфейс | Реализовано | Description |
|---|---|---|
| IDebugBoundBreakpoint2 | DE | Представляет точку останова, привязанную к расположению памяти. |
| IDebugBreakpointBoundEvent2 | DE | Отправляется de, когда точка останова привязана к расположению памяти. |
| IDebugBreakpointChecksumRequest2 | VS | Представляет документ проверка сум для запроса точки останова. |
| IDebugBreakpointErrorEvent2 | DE | Отправляется de, когда точка останова не привязана к расположению памяти. |
| IDebugBreakpointEvent2 | DE | Отправляется de при достижении точки останова. |
| IDebugBreakpointRequest2 | VS | Представляет запрос на точку останова; используется при создании ожидающей точки останова. |
| IDebugBreakpointRequest3 | VS | Представляет запрос на точку останова; используется при создании ожидающей точки останова. |
| IDebugBreakpointResolution2 | DE | Представляет сведения, используемые для привязки точки останова. |
| IDebugBreakpointUnboundEvent2 | DE | Отправляется de, когда точка останова не связана с расположением памяти. |
| IDebugErrorBreakpoint2 | DE | Представляет недопустимую точку останова (возвращается IDebugBreakpointErrorEvent2). |
| IDebugErrorBreakpointResolution2 | DE | Представляет сведения о разрешении недопустимой точки останова. |
| IDebugFunctionPosition2 | DE | Представляет позицию в функции, в которой задана точка останова. |
| IDebugPendingBreakpoint2 | DE | Представляет точку останова, которая должна быть привязана; используется при создании связанной точки останова. |
| IEnumDebugBoundBreakpoints2 | DE | Представляет перечисление по набору связанных точек останова. |
| IEnumDebugErrorBreakpoints2 | DE | Представляет перечисление по набору точек останова, которые не могут быть привязаны к расположению памяти. |
Контексты
Эти интерфейсы представляют различные виды контекстов в отлаживаемой программе.
| Интерфейс | Реализовано | Description |
|---|---|---|
| IDebugCodeContext2 | DE | Представляет начальную позицию инструкции кода. |
| IDebugCodeContext3 | DE | Расширяет интерфейс IDebugCodeContext2, чтобы включить извлечение интерфейсов модуля и процессов. |
| IDebugDocumentContext2 | VS, DE | Представляет позицию в документе. |
| IDebugExpressionContext2 | DE | Представляет контекст, в котором вычисляется выражение. |
| IDebugMemoryContext2 | DE | Представляет начальное расположение в памяти коллекции байтов. |
| IDebugStackFrame2 | DE | Представляет контекст кадра стека в точке останова или исключении. |
| IDebugStackFrame3 | DE | Представляет контекст кадра стека в точке останова или исключении. |
| IEnumDebugCodeContexts2 | DE | Представляет перечисление по набору контекстов кода. |
Основной сервер
Эти интерфейсы представляют компьютер, на котором выполняется отладка программы. Они реализованы Visual Studio, но могут вызываться обработчиками отладки.
| Интерфейс | Реализовано | Description |
|---|---|---|
| IDebugCoreServer2 | VS | Предоставляет доступ к портам и поставщикам портов, а также сведениям о компьютере. |
| IDebugCoreServer3 | VS | Представляет IDebugCoreServer2, поддерживающий удаленную отладку. |
Обработчики отладки
Эти интерфейсы представляют подсистемы отладки и связанные с ними события.
| Интерфейс | Реализовано | Description |
|---|---|---|
| IDebugEngine2 | DE | Представляет пользовательский модуль отладки. |
| IDebugEngine3 | DE | Представляет пользовательский модуль отладки, поддерживающий загрузку символов, JustMyCode и исключений. |
| IDebugEngineCreateEvent2 | DE | Отправляется каждым новым экземпляром DE, чтобы указать, что он готов к обработке задач отладки. |
| IDebugEngineLaunch2 | DE | Представляет пользовательский модуль отладки, поддерживающий запуск программ. |
| IDebugProgramEngines2 | DE, PS | Представляет узел программы, обрабатывающий несколько обработчиков отладки. |
| IDebugQueryEngine2 | DE | Предоставляет способ получения интерфейса подсистемы отладки из потока, программы или кадра стека. |
Документы
Эти интерфейсы представляют документы (исходные файлы) и связанные с ними элементы.
| Интерфейс | Реализовано | Description |
|---|---|---|
| IDebugActivateDocumentEvent2 | DE | Отправляется de de, чтобы запросить открытие документа. |
| IDebugDisassemblyStream2 | DE | Представляет поток дизассеблированных инструкций из документа. |
| IDebugDocument2 | VS, DE | Представляет документ, предоставленный DE, указав имя и идентификатор класса (CLSID). |
| IDebugDocumentChecksum2 | DE, EE | Представляет проверка сум для отладочного документа и включает передачу проверка сумы между компонентами. |
| IDebugDocumentContext2 | VS, DE | Представляет контекст документа, позицию в документе, соответствующую определенной инструкции и контексту кода. |
| IDebugDocumentPosition2 | VS, DE | Представляет общую позицию в документе. |
| IDebugDocumentPositionOffset2 | VS | Представляет позицию в исходном файле в виде смещения символов. |
| IDebugDocumentText2 | VS, DE | Представляет текстовый документ, предоставленный DE (производный от IDebugDocument2), предоставляющий фактический текст. |
| IDebugDocumentTextEvents2 | DE | Отправляется de de, чтобы указать изменения исходного файла, который находится в памяти. |
События
Эти интерфейсы представляют все события, отправляемые между DE и диспетчером отладки сеансов (SDM).
| Интерфейс | Реализовано | Description |
|---|---|---|
| IDebugActivateDocumentEvent2 | DE | Отправляется de de, чтобы запросить открытие документа. |
| IDebugBeforeSymbolSearchEvent2 | DE | Модуль отладки (DE) отправляет этот интерфейс в диспетчер отладки сеанса (SDM), чтобы задать сообщение строки состояния во время загрузки символов. |
| IDebugBreakEvent2 | DE | Отправляется DE после завершения перерыва в программе. |
| IDebugBreakpointBoundEvent2 | DE | Отправляется de, когда точка останова привязана. |
| IDebugBreakpointErrorEvent2 | DE | Отправляется de, когда точка останова не привязана. |
| IDebugBreakpointEvent2 | DE | Отправляется de при достижении точки останова. |
| IDebugBreakpointUnboundEvent2 | DE | Отправляется de, когда точка останова не подключена. |
| IDebugCanStopEvent2 | DE | Отправляется DE, чтобы определить, следует ли остановиться в определенном расположении. |
| IDebugDocumentTextEvents2 | DE | Отправляется de de, чтобы указать изменения исходного файла, который находится в памяти. |
| IDebugEngineCreateEvent2 | DE | Отправляется каждым новым экземпляром DE, чтобы указать, что он готов к обработке задач отладки. |
| IDebugEntryPointEvent2 | DE | Отправляется de de, чтобы указать, что отлаживаемая программа готова выполнить первую инструкцию. |
| IDebugErrorEvent2 | DE | Интерфейс, используемый другими интерфейсами событий, которые могут возвращать ошибку для предоставления сообщений об ошибках, доступных для чтения пользователем. |
| IDebugEvent2 | DE, PS | Базовый интерфейс, из которого производны все остальные интерфейсы событий. |
| IDebugEventCallback2 | VS | Представляет интерфейс, реализованный SDM, в который отправляются события (выраженные как объекты, реализующие определенный интерфейс событий). |
| IDebugExceptionEvent2 | DE | Отправляется DE при возникновении исключения в отлаживаемой программе. |
| IDebugExpressionEvaluationCompleteEvent2 | DE | Отправляется de при завершении асинхронной оценки выражений. |
| IDebugFindSymbolEvent2 | Устаревшее. НЕ ИСПОЛЬЗУЙТЕ. | |
| IDebugInterceptExceptionCompleteEvent2 | DE | Отправлено DE при выполнении обработки перехватированного исключения. |
| IDebugLoadCompleteEvent2 | DE | Отправляется DE после завершения загрузки программы. |
| IDebugMessageEvent2 | DE | Отправляемый de, чтобы интегрированная среда разработки отображала информационное сообщение пользователю. |
| IDebugModuleLoadEvent2 | DE | Отправляется de при загрузке или выгрузке модуля. |
| IDebugNoSymbolsEvent2 | DE | Сигнализирует пользовательскому интерфейсу отладчика Visual Studio, чтобы предупредить пользователя о том, что символы не могут находиться для запущенного исполняемого файла. |
| IDebugOutputStringEvent2 | DE | Отправляемый de, чтобы интегрированная среда разработки отображала произвольную строку. |
| IDebugPortEvents2 | VS, DE | Отправляется портом для передачи событий порта любому прослушивателю. |
| IDebugProcessCreateEvent2 | DE, PS | Отправляется de или port при создании процесса. |
| IDebugProcessDestroyEvent2 | DE, PS | Отправляется de или port при уничтожении процесса. |
| IDebugProgramCreateEvent2 | DE, PS | Отправляется de или port при создании программы. |
| IDebugProgramDestroyEvent2 | DE, PS | Отправляется ДЕ или портом при уничтожении программы. |
| IDebugProgramDestroyEventFlags2 | DE | Позволяет подсистеме отладки переопределить поведение пользовательского интерфейса Visual Studio по умолчанию при завершении сеанса отладки. |
| IDebugProgramNameChangedEvent2 | DE | Отправляется из обработчика отладки (DE) в диспетчер отладки сеанса (SDM) при изменении имени программы. |
| IDebugPropertyCreateEvent2 | DE | Отправляется de при создании нового свойства (представленного интерфейсом IDebugProperty2 ). |
| IDebugPropertyDestroyEvent2 | DE | Отправляется DE при уничтожении свойства. |
| IDebugReturnValueEvent2 | DE | Отправляется de при выходе из функции или из нее, чтобы возвращаемое значение можно было правильно отобразить. |
| IDebugSettingsCallback2 | VS | Позволяет модулям отладки удаленно считывать параметры метрик. |
| IDebugStepCompleteEvent2 | DE | Отправляется de при завершении шага в инструкцию или из нее. |
| IDebugSymbolSearchEvent2 | DE | Отправляется de de, чтобы указать успешность или сбой загрузки символов для модуля. |
| IDebugThreadCreateEvent2 | DE | Отправляется DE при создании потока. |
| IDebugThreadDestroyEvent2 | DE | Отправляется DE при уничтожении потока. |
| IDebugThreadNameChangedEvent2 | DE | Отправляется de, когда поток изменил свое имя. |
Выражения
Эти интерфейсы представляют выражения, которые будут оцениваться в определенном контексте.
| Интерфейс | Реализовано | Description |
|---|---|---|
| IDebugExpression2 | DE | Представляет выражение для вычисления. Получен из интерфейса IDebugExpressionContext2 . |
| IDebugExpressionContext2 | DE | Представляет контекст, в котором вычисляется выражение. Получен из интерфейса IDebugStackFrame2 . |
| IDebugExpressionEvaluationCompleteEvent2 | DE | Отправляется de при завершении асинхронной оценки выражений. |
Память
Эти интерфейсы представляют последовательности байтов в памяти.
| Интерфейс | Реализовано | Description |
|---|---|---|
| IDebugMemoryBytes2 | DE | Представляет последовательность байтов в памяти, в которую можно считывать или записывать в нее. |
| IDebugMemoryContext2 | DE | Представляет расположение в памяти последовательности байтов. |
Модули
Эти интерфейсы представляют модуль, соответствующий исполняемому файлу или DLL-файлу.
| Интерфейс | Реализовано | Description |
|---|---|---|
| IDebugModule2 | DE | Представляет один исполняемый файл или библиотеку DLL. |
| IDebugModule3 | DE | Представляет идентификатор IDebugModule2, поддерживающий символы. |
| IDebugModuleLoadEvent2 | DE | Отправляется de при загрузке или выгрузке модуля. |
| IDebugSourceServerModule | DE | Представляет сведения о исходном сервере, содержащиеся в PDB-файле. |
| IEnumDebugModules2 | DE | Представляет перечисление по набору модулей, известных IDebugProgram2. |
Порты
Эти интерфейсы представляют порты и поставщики портов.
| Интерфейс | Реализовано | Description |
|---|---|---|
| IDebugDefaultPort2 | VS, PS | Представляет порт по умолчанию на локальном компьютере. |
| IDebugFirewallConfigurationCallback2 | VS | Позволяет обработчику отладки, использующего DCOM, запрашивать пользовательский интерфейс Visual Studio, чтобы убедиться, что брандмауэр не блокирует удаленную отладку. |
| IDebugPort2 | VS, PS | Представляет порт. |
| IDebugPortEvents2 | PS | Отправляется портом для передачи событий порта любому прослушивателю. |
| IDebugPortEx2 | PS | Представляет порт, который может запускать и завершать процессы. |
| IDebugPortNotify2 | PS | Используется для регистрации и отмены регистрации программ с помощью порта; позволяет порту отслеживать отлаживаемые программы. |
| IDebugPortPicker | PS | Представляет настраиваемый пользовательский интерфейс для выбора порта. |
| IDebugPortRequest2 | VS | Представляет запрос на порт, из которого будет создан или расположен новый порт. |
| IDebugPortSupplier2 | PS | Представляет поставщика портов. |
| IDebugPortSupplier3 | PS | Представляет поставщика портов, которые могут сохранять (сохранять на диске) сведения о созданных портах. |
| IDebugPortSupplierDescription2 | PS | Позволяет пользовательскому интерфейсу Visual Studio отображать текст в разделе "Сведения о транспорте" диалогового окна "Присоединение к процессу ". |
| IDebugWindowsComputerPort2 | VS | Позволяет запрашивать сведения о целевом компьютере. |
| IEnumDebugPorts2 | VS, PS | Представляет перечисление по набору портов. |
| IEnumDebugPortSuppliers2 | VS | Представляет перечисление по набору поставщиков портов. |
Процессы
Эти интерфейсы представляют процессы, один исполняемый файл, содержащий одну или несколько программ.
| Интерфейс | Реализовано | Description |
|---|---|---|
| IDebugProcess2 | PS, DE | Представляет процесс, выполняющийся на компьютере. |
| IDebugProcess3 | PS, DE | Представляет процесс, активно поддерживающий отладку (используется для замены методов Step, Continue и Execute в интерфейсе IDebugProgram2 ). |
| IDebugProcessCreateEvent2 | DE, PS | Отправляется de или port при создании процесса. |
| IDebugProcessDestroyEvent2 | DE, PS | Отправляется de или port при уничтожении процесса. |
| IDebugProcessEx2 | PS | Представляет процесс, который должен отслеживать присоединенный к нему сеанс. |
| IEnumDebugProcesses2 | PS | Представляет перечисление набора процессов на порту. |
Programs
Эти интерфейсы представляют программы, логические единицы выполнения, которые не обязательно соответствуют физическому исполняемому файлу или модулю.
| Интерфейс | Реализовано | Description |
|---|---|---|
| IDebugEngineProgram2 | DE | Представляет IDebugProgram2, который должен работать в концерте с другими программами, отлаживающимися одновременно. |
| IDebugProgram2 | DE, PS | Представляет логическую единицу выполнения. |
| IDebugProgramCreateEvent2 | DE, PS | Отправляется de или port при создании программы. |
| IDebugProgramDestroyEvent2 | DE, PS | Отправляется ДЕ или портом при уничтожении программы. |
| IDebugProgramEngines2 | DE, PS | Представляет идентификатор IDebugProgramNode2, который может обрабатываться несколькими обработчиками отладки. |
| IDebugProgramEx2 | PS | Представляет идентификатор IDebugProgram2, который должен быть в состоянии отслеживать, к какой сеансу подключен. |
| IDebugProgramHost2 | DE, PS | Представляет идентификатор IDebugProgram2, который может возвращать сведения о процессе выполнения. |
| IDebugProgramNode2 | DE, PS | Представляет программу, которую можно отладить. |
| IDebugProgramNodeAttach2 | DE, PS | Позволяет узлу программы получать уведомления о попытке подключения к связанной программе. |
| IDebugProgramProvider2 | DE | Предоставляет возможность SDM запрашивать DE о программах, контролируемых этим DE. |
| IDebugProgramPublisher2 | VS | Используется DEs для регистрации программ с помощью SDM для отображения их отладки. |
| IDebugProviderProgramNode2 | DE, PS | Представляет идентификатор IDebugProgramNode2, который может маршалить интерфейсы через границы потока или процесса. |
| IEnumDebugPrograms2 | DE, PS | Представляет перечисление набора программ. |
Свойства
Эти интерфейсы представляют свойства, значение, связанное с определенным контекстом, обычно результат вычисления выражения.
| Интерфейс | Реализовано | Description |
|---|---|---|
| IDebugCustomViewer | EE | Представляет идентификатор IDebugProperty2, который может отображать его значение настраиваемым способом. |
| IDebugProperty2 | DE | Представляет значение кадра стека, документа или результата вычисления выражения. |
| IDebugProperty3 | DE | Представляет идентификатор IDebugProperty2, поддерживающий произвольные длинные строки. |
| IDebugPropertyCreateEvent2 | DE | Отправляется de при создании нового свойства (представленного интерфейсом IDebugProperty2 ). |
| IDebugPropertyDestroyEvent2 | DE | Отправляется DE при уничтожении свойства. |
| IDebugReference2 | DE | Представляет ссылку на свойство, которое может существовать вне любого определенного кадра стека. |
| IEnumDebugPropertyInfo2 | DE | Представляет перечисление по набору DEBUG_PROPERTY_INFO структур, описывающих переменные, регистры, параметры и выражения. |
| IEnumDebugReferenceInfo2 | DE | Представляет перечисление по набору DEBUG_REFERENCE_INFO структур. |
Кадры стека
Эти интерфейсы представляют кадр стека, контекст, в котором произошла точка останова или исключение.
| Интерфейс | Реализовано | Description |
|---|---|---|
| IDebugStackFrame2 | DE | Представляет контекст, в котором произошла точка останова или исключение. |
| IDebugStackFrame3 | DE | Представляет IDebugStackFrame2, который может обрабатывать перехватанные исключения. |
| IEnumCodePaths2 | DE | Представляет перечисление по набору структур CODE_PATH, которые указывают последовательность вызовов функции, используемую для поступления в определенный кадр стека. |
| IEnumDebugFrameInfo2 | DE | Представляет перечисление по набору структур FRAMEINFO , описывающих кадры стека. |
Потоки
Эти интерфейсы представляют потоки и связанные с ними события.
| Интерфейс | Реализовано | Description |
|---|---|---|
| IDebugThread2 | DE | Представляет поток выполнения. |
| IDebugThreadCreateEvent2 | DE | Отправляется DE при создании потока. |
| IDebugThreadDestroyEvent2 | DE | Отправляется DE при уничтожении потока. |
| IDebugThreadNameChangedEvent2 | DE | Отправляется de, когда поток изменил свое имя. |
| IEnumDebugThreads2 | DE | Представляет перечисление по набору потоков. |
Визуализаторы типов
Эти интерфейсы обеспечивают поддержку визуализаторов типов. Обычно эти интерфейсы реализуются вычислителем выражений.
| Интерфейс | Реализовано | Description |
|---|---|---|
| IEEDataStorage | EE | Представляет массив байтов, который будет представлен визуализатору типов. |
| IPropertyProxyEESide | EE | Предоставляет методы для получения доступа к данным, передаваемым визуализатору типов. |
| IPropertyProxyProvider | EE | Представляет свойство, которое предоставляет доступ к реализации IPropertyProxyEESide . |