Базовые интерфейсы

Ниже приведены основные интерфейсы для расширения отладчика с помощью пакета SDK Для Visual Studio.

Обсуждение

Эти интерфейсы в основном используются для создания обработчика отладки (DE). Они организованы здесь по категориям:

Точки останова

Эти интерфейсы связаны с реализацией и отслеживанием точек останова.

Интерфейс Реализовано 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 .

См. также