Microsoft.VisualStudio.Debugger Пространство имен

Классы

DkmBaseDebugMonitorId

DkmBaseDebugMonitorId определяет базовый монитор отладки, используемый для проверки отлаживаемого процесса и управления ими. Например, DkmBaseDebugMonitorId.WindowsProcess используется для процессов, отлаживаемых API отладки Win32, а DkmBaseDebugMonitorId.DumpFile используется для минидампов.

DkmComponentManager

Предоставляет службы диспетчера для инициализации потоков.

DkmCustomMessage

Структура сообщений, используемая для передачи информации между компонентами пользовательской серверной части отладчика и пользовательскими компонентами пользовательского интерфейса Visual Studio (пакетами, надстройками и т. д.).

DkmDataContainer

DkmDataContainer — это стандартный блок, который используется в этом API. Это позволяет многим объектам в этом API содержать "виртуальные поля", которые добавляются любым компонентом в системе. Это похоже на типобезопасную версию концепции expando в JScript.

Правила для DkmDataContainer:

  1. Все объекты reference в системе наследуются от DkmDataContainer. Ссылочные объекты отслеживаются компонентом диспетчера этой системы, и в различных точках маршалинга (управляемые> в машинном коде, управляемые> в машинном коде, удаленное взаимодействие) сохраняется удостоверение ссылки на объект. Объекты Value не наследуются от DkmDataContainer, так как система не отслеживает эти объекты, поэтому при любом переходе маршалинга значение объекта копируется.
  2. Виртуальные поля этих объектов, которые наследуются от DkmDataContainer, называются элементами данных.
  3. Элементы данных являются частными для компонента, который их добавил. Эту функцию нельзя использовать для совместного использования полей в пределах компонентов.
  4. Элементы данных — это экземпляры класса элементов данных. В управляемом коде классы элементов данных наследуются от DkmDataItem, чтобы определить их как элемент данных. В машинном коде элементы данных наследуются от IUnknown.
  5. Обычно компоненту никогда не требуется удалять элемент данных. Это связано с тем, что элементы данных автоматически удаляются при закрытии объекта контейнера.
DkmDataItem

DkmDataItem — это базовый класс для всех классов элементов данных. Дополнительные сведения см. в разделе DkmDataContainer.

DkmDiagnosticsLog

Статический класс, определяющий методы для записи в журнал диспетчера диагностика

DkmDotnetVisualizerExtensionInfo

Содержит сведения о расширении визуализатора отладчика, которое может отображаться для результата оценки.

Этот API появился в Visual Studio 17 с обновлением 6 (DkmApiVersion.VS17Update6).

DkmEngineId

Это "стандартные" значения GUID подсистемы. Ожидается, что этот список будет увеличиваться со временем, поэтому по возможности рекомендуется запрашивать параметр вместо сравнения EngineId.

DkmEngineSettings

Содержит параметры отладки на уровне сеанса. Существует один экземпляр этого объекта для каждого модуля GUID (например, один экземпляр для COMPlusOnlyEng2, один экземпляр для COMPlusNativeEng).

DkmEventDescriptor

Описывает обрабатываемое событие.

DkmEventDescriptorS

Описывает обрабатываемое событие и предоставляет компоненту возможность подавлять это событие.

DkmException

Базовый класс исключений для всех исключений в этом API.

DkmGlobalSettings

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

DkmInstructionAddress

Абстрактное представление расположения исполняемого кода (например, значение EIP). В случае разрешения адрес инструкции будет находиться в определенном экземпляре модуля. Адрес инструкции всегда находится в определенном экземпляре среды выполнения.

Производные классы: DkmClrInstructionAddress, DkmClrNcInstructionAddress, DkmCustomInstructionAddress, DkmNativeInstructionAddress, DkmScriptInstructionAddress, DkmUnknownInstructionAddress

DkmInstructionAddress.CPUInstruction

CPUInstruction предоставляет адрес, который будет выполнять ЦП. Это всегда предоставляется для собственных инструкций. Он может быть предоставлен для clR или пользовательских адресов в зависимости от способа создания объекта адреса.

DkmLanguageRegistrySetting

Связывание между именем параметра и его значением.

DkmModuleInstance

Класс Module Instance представляет собой пакет кода (например, dll или exe), который загружается в определенный процесс в определенном расположении. Объекты экземпляра модуля — это 1:1 с понятием среды выполнения пакета кода. Например, в машинном коде объекты экземпляра модуля представляют собой 1:1 с базовым адресом.

Производные классы: DkmClrModuleInstance, DkmClrNcModuleInstance, DkmCustomModuleInstance, DkmNativeModuleInstance, DkmClrNcContainerModuleInstance

DkmModuleInstance.MinidumpInfo

MinidumpInfo используется для передачи дополнительных сведений о модулях в DkmProcess для минидампа.

DkmModuleVersion

Сведения о версии файла.

DkmNativeEESettings

Содержит параметры конфигураций для собственного средства оценки выражений.

Этот API появился в Visual Studio 17 с обновлением 7 (DkmApiVersion.VS17Update7).

DkmPerformanceCounters

Сбор счетчиков выполнения процесса.

Этот API появился в Visual Studio 14 RTM (DkmApiVersion.VS14RTM).

DkmProcess

DkmProcess представляет отлаживаемый целевой процесс. Отладчик выполняет отладку процессов, поэтому это базовая единица отладки. DkmProcess может представлять системный процесс или виртуальный процесс, например минидампы.

DkmProcess.Live

Сведения, относящиеся к запущенным процессам. Например, эта часть не будет присутствовать для минидампов.

DkmProcessExecutionCounters

Хранит метку времени QPC для события остановки или возобновления процесса.

Этот API появился в Visual Studio 14 RTM (DkmApiVersion.VS14RTM).

DkmProcessSnapshot

DkmProcessSnapshot представляет snapshot, который записывается о выполняющихся процессах.

Этот API появился в Visual Studio 15 с обновлением 3 (DkmApiVersion.VS15Update3).

DkmReadOnlyByteCollection

Реализация ReadOnlyCollection, которая может предоставить указатель на базовую собственную память. В настоящее время этот класс используется только для ReadOnlyCollections, в котором хранятся байты, когда значение передается через вызов API Concord.

DkmRegistryTweak

Пара "ключ-значение", считываемая из реестра.

Этот API появился в Visual Studio 12 RTM (DkmApiVersion.VS12RTM).

DkmRuntimeId

Идентификатор среды выполнения определяет среду выполнения для определенного фрагмента кода. Идентификаторы среды выполнения используются диспетчером для выбора монитора для отправки. Обратите внимание, что порядок идентификаторов GUID среды выполнения имеет некоторое значение, так как это определяет, какая среда выполнения получает первый снимок во время арбитража. Таким образом, если требуется объявить новый экземпляр среды выполнения, созданный на основе среды CLR, идентификатор среды выполнения должен быть меньше DkmRuntimeId.Clr.

DkmRuntimeInstance

Класс DkmRuntimeInstance представляет среду выполнения, которая загружается в DkmProcess и содержит отлаживаемый код.

Производные классы: DkmClrRuntimeInstance, DkmClrNcRuntimeInstance, DkmCustomRuntimeInstance, DkmNativeRuntimeInstance, DkmScriptRuntimeInstance, DkmNativeDwarfRuntimeInstance, DkmOpenEnclaveRuntimeInstance

DkmSourceId

Идентифицирует источник объекта . SourceId используются для включения фильтрации в сценариях, когда несколько компонентов могут создавать экземпляры класса. Например, исходные идентификаторы можно использовать для определения того, исходит ли точка останова из AD7 AL (например, точка останова пользователя или другая точка останова, видимая на уровне SDM), а не точка останова, которая может быть создана другим компонентом (например, внутренней точкой останова, используемой для пошагового выполнения).

DkmThread

DkmThread представляет поток, выполняющийся в целевом процессе.

Производные классы: DkmGPUComputeThread, DkmVirtualThread

DkmThread.System

Описывает признаки потока, относящиеся к полному потоку Win32. В настоящее время это значение является обязательным, и все потоки будут иметь блок System. В будущем это значение может иметь значение NULL, если DkmThread представляет не полный поток Win32.

DkmTraceTimeContext

Точка времени в трассировки перемещения по времени. Внутреннее представление представляет собой сведения о реализации создателя.

Этот API появился в Visual Studio 16 RTM (DkmApiVersion.VS16RTMPreview).

DkmUnknownInstructionAddress

Представляет адрес, который не удалось разрешить в модуль.

DkmUserMessage

Содержит сведения о сообщении, которое должно отображаться для пользователя.

DkmVirtualThread

DkmVirtualThread представляет поток, который физически не существует в отлаживаемом процессе.

Этот API появился в Visual Studio 16 с обновлением 2 (DkmApiVersion.VS16Update2).

DkmWaitUIOperation

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

Этот API появился в Visual Studio 15 RTM (DkmApiVersion.VS15RTM).

DkmWorkList

Коллекция асинхронных рабочих элементов, обрабатываемых вместе. Рабочие элементы добавляются путем вызова любого из асинхронных методов в этом API. Рабочие элементы могут добавляться свободно, пока не начнется выполнение списка трудоемких элементов. После начала выполнения дополнительные действия могут быть добавлены только из реализации интерфейса обработки рабочих элементов или из подпрограммы завершения.

Структуры

DkmDisplayUserMessagePromptAsyncResult

Результат асинхронного вызова DkmUserMessage.DisplayPrompt.

DkmGetCurrentCPUAddressAsyncResult

Результат асинхронного вызова DkmInstructionAddress.GetCurrentCPUAddress.

DkmGetInstructionAddressAsyncResult

Результат асинхронного вызова DkmProcess.GetInstructionAddress.

DkmGetRelativeInstructionAddressAsyncResult

Результат асинхронного вызова DkmProcess.GetInstructionAddress.

DkmGetSymbolSearchResultAsyncResult

Результат асинхронного вызова DkmModuleInstance.GetSymbolSearchResult.

DkmModuleInstanceIsUserCodeAsyncResult

Результат асинхронного вызова DkmModuleInstance.IsUserCode.

DkmPerformanceCountersAsyncResult

Результат асинхронного вызова DkmProcess.QueryPerformanceCounters.

DkmResolveCPUInstructionAddressAsyncResult

Результат асинхронного вызова DkmRuntimeInstance.ResolveCPUInstructionAddress.

DkmRuntimeInstanceId

Определяет объект DkmRuntimeInstance в процессе.

DkmSendLowerAsyncResult

Результат асинхронного вызова DkmCustomMessage.SendLower.

DkmTryLoadBinaryAsyncResult

Результат асинхронного вызова DkmModuleInstance.TryLoadBinary.

DkmXmm128

DkmXmm128 представляет содержимое 128-разрядного регистра XMM в системах x64.

Перечисления

DkmApiVersion

Код перечисления различных версий этого API.

DkmAsyncBreakStatus

Указывает тип асинхронного разрыва.

DkmClientUI

Указывает тип пользовательского интерфейса, который управляет экземпляром подсистемы.

Этот API появился в Visual Studio 15 RTM (DkmApiVersion.VS15RTM).

DkmDataCreationDisposition

Действие, выполняемое, если элемент данных уже находится в контейнере.

DkmDecompilerMode

Режимы, в которых можно декомпилировать модуль.

Этот API появился в Visual Studio 17 с обновлением 7 (DkmApiVersion.VS17Update7).

DkmDispatcherObjectFlags

Внутренние флаги, указывающие текущее состояние объекта диспетчера.

DkmDotnetVisualizerExtensionStyle

Указывает, как должен отображаться визуализатор при открытии.

Этот API появился в Visual Studio 17 с обновлением 8 (DkmApiVersion.VS17Update8).

DkmDumpType

Тип сохраняемого дампа.

DkmEngineFlags

Флаги, указывающие неизменяемые признаки параметров этого обработчика.

DkmEventCode

Перечисление всех событий, которые в настоящее время определены в этом API.

DkmExceptionCode

Определяет коды HRESULT, используемые этим API.

DkmFuncEvalAbortLoggingFlags

Флаги, указывающие, какой тип ведения журнала следует выполнять при прерывании функ eval.

Этот API появился в Visual Studio 15 с обновлением 4 (DkmApiVersion.VS15Update4).

DkmFuncEvalMode

Указывает, выполняется ли вычисление функции в целевом процессе и разрешены ли для этой оценки события остановки.

DkmInstructionAddress.Tag

DkmInstructionAddress — это абстрактный базовый класс. Это перечисление указывает, какой производный класс является экземпляром этого объекта.

DkmLogLevel

Указывает степень детализации сообщений журнала, добавленных в журнал диагностика (DkmDiagnosticsLog). Чтобы позволить тривиально проверить, включен ли заданный уровень журнала, он объявляется как перечисление флага, но с очень немногими исключениями, если таковые есть, сообщения должны устанавливать один флаг.

Этот API появился в Visual Studio 17 с обновлением 8 (DkmApiVersion.VS17Update8).

DkmMemoryTimeFlags

Перечисление, описывающее время, в которое разрешается чтение памяти, относительно текущего времени процесса.

Этот API появился в Visual Studio 15 с обновлением 8 (DkmApiVersion.VS15Update8).

DkmModuleFlags

Флаги, указывающие признаки DkmModuleInstance.

DkmModuleInstance.Tag

DkmModuleInstance — это абстрактный базовый класс. Это перечисление указывает, какой производный класс является экземпляром этого объекта.

DkmModuleMemoryLayout

Перечисление, указывающее, как модуль находится в памяти.

DkmProcessExecuteDirection

Указывает направление выполнения процесса.

Этот API появился в Visual Studio 15 с обновлением 8 (DkmApiVersion.VS15Update8).

DkmProcessorArchitecture
DkmReadMemoryFlags

Флаги, управляющие поведением DkmProcess.ReadMemory и DkmProcess.ReadMemoryString.

DkmRuntimeCapabilities

Перечисление возможностей среды выполнения.

Этот API появился в Visual Studio 12 RTM (DkmApiVersion.VS12RTM).

DkmRuntimeInstance.Tag

DkmRuntimeInstance является абстрактным базовым классом. Это перечисление указывает, какой производный класс является экземпляром этого объекта.

DkmStoppingEventProcessingNextAction

Код состояния, возвращенный базовому монитору отладки, чтобы указать следующее действие, которое необходимо выполнить при остановке обработки событий.

DkmUserMessageOutputKind

Указывает, где должен быть вывод DkmUserMessage в интегрированной среде разработки отладчика.

DkmWaitUIOperationFlags

Флаги для DkmWaitUIOperation.

Этот API появился в Visual Studio 15 RTM (DkmApiVersion.VS15RTM).

DkmWorkListExecutionThread

Аргумент DkmWorkList.BeginExecution, указывающий, где должны выполняться рабочие элементы в списке работ.

DkmWorkListPriority

Класс приоритетных рабочих списков от высокого до неактивного. @Note: должна быть синхронизирована с управляемым определением.

ExceptionConditionCallStackBehavior
ExceptionConditionOperator
ExceptionConditionType
GCReferenceType
MessageBoxFlags
MinidumpFlags

Делегаты

DkmCompletionRoutine<TResult>

Функция, которая срабатывает при завершении асинхронного запроса.

DkmWorkListCompletionRoutine

Необязательная функция, которая запускается после завершения списка работ, включая запуск всех подпрограмм завершения.

DkmWorkListProgressRoutine

Необязательная функция, которая активируется при обновлении списка работ.