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


DkmScriptInstructionSymbol Класс

Определение

DkmScriptInstructionSymbol используется для представления исполняемой инструкции в среде выполнения на основе скриптов, такой как подсистема Microsoft JavaScript.

public ref class DkmScriptInstructionSymbol : Microsoft::VisualStudio::Debugger::Symbols::DkmInstructionSymbol
[Windows::Foundation::Metadata::WebHostHidden]
public ref class DkmScriptInstructionSymbol : Microsoft::VisualStudio::Debugger::Symbols::DkmInstructionSymbol
[Windows::Foundation::Metadata::WebHostHidden]
class DkmScriptInstructionSymbol : Microsoft::VisualStudio::Debugger::Symbols::DkmInstructionSymbol
[System.Runtime.InteropServices.Guid("aebaa0af-6437-2ecf-aaf1-86c58eba9447")]
public class DkmScriptInstructionSymbol : Microsoft.VisualStudio.Debugger.Symbols.DkmInstructionSymbol
[<System.Runtime.InteropServices.Guid("aebaa0af-6437-2ecf-aaf1-86c58eba9447")>]
type DkmScriptInstructionSymbol = class
    inherit DkmInstructionSymbol
Public Class DkmScriptInstructionSymbol
Inherits DkmInstructionSymbol
Наследование
DkmScriptInstructionSymbol
Атрибуты

Свойства

AdditionalData

[Необязательно] Дополнительные данные, относящиеся к среде выполнения, связанные с адресом. Эти данные не будут использоваться при сравнении адресов.

Document

Документ, содержащий эту инструкцию.

Module

Класс DkmModule представляет пакет кода (например, dll или exe), который был загружен в один или несколько процессов или один раз. Класс DkmModule является центральным объектом api символов и имеет значение 1:1 с нотацией загруженного обработчика символов. Если пакет кода загружается в три разных процесса (или один и тот же процесс, но с тремя разными базовыми адресами или тремя разными доменами приложения), но обработчик символов считает, что все эти процессы идентичны, будет только один объект модуля.

(Унаследовано от DkmInstructionSymbol)
Revision

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

RuntimeType

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

(Унаследовано от DkmInstructionSymbol)
StartIndex

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

StatementLength

Длина инструкции (в символах).

TagValue

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

(Унаследовано от DkmInstructionSymbol)

Методы

Bind(DkmModuleInstance)

Привязывает символ инструкции к конкретному экземпляру модуля. Символ инструкции связан с DkmModule, а не с DkmModuleInstance, поэтому он не привязан к конкретному процессу, домену приложения или базовому адресу модуля.

(Унаследовано от DkmInstructionSymbol)
Create(DkmModule, Guid, DkmScriptDocument, Int32, Int32, Int32, ReadOnlyCollection<Byte>)

Create новый экземпляр объекта DkmScriptInstructionSymbol.

GetAlternateSourcePosition(DkmSourcePositionFlags)

Возвращает альтернативную позицию исходного файла (например, example.cs, строка 12) для этого символа инструкции. В настоящее время используется в сценариях сопоставления источников для возврата исходного (несопоставленного) исходного расположения. Этот API будет вызываться пользовательским интерфейсом отладчика в случаях, когда не удается найти основное исходное расположение.

Ограничение расположения: API должен вызываться из компонента IDE (уровень > компонента 100 000).

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

(Унаследовано от DkmInstructionSymbol)
GetBasicInfo(DkmWorkList, DkmModuleInstance, DkmBasicSymbolInfoRequestFlags, DkmCompletionRoutine<DkmGetBasicSymbolInfoAsyncResult>)

Асинхронно вычисляет основные сведения о символах для заданного DkmInstructionSymbol.

Этот метод добавляет новый рабочий элемент в указанный рабочий список и возвращается после добавления рабочего элемента. Фактическая обработка рабочего элемента является асинхронной. Вызывающий объект получит уведомление о том, что запрос завершен в рамках процедуры завершения.

Ограничение расположения: API должен вызываться из компонента IDE (уровень > компонента 100 000).

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

(Унаследовано от DkmInstructionSymbol)
GetCompilerId(DkmInspectionSession)

Возвращает идентификатор компилятора (LanguageId/VendorId) заданного символа.

Для средства чтения PDB Microsoft, если PDB был создан компилятором, который использовал ISymUnmanagedWriter, то средство чтения PDB сможет определить правильный DkmCompilerId из пары LanguageId/VendorId, переданной из ISymUnmanagedWriter.DefineDocument.

Если PDB был создан компилятором, который не использовал ISymUnmanagedWriter, средство чтения PDB может получить DkmCompilerId из записей PDB S_COMPILE*. Чтобы это работало, компилятор должен сначала создать запись S_COMPILE* для каждого компилятора. Компилятор должен правильно заполнить значение перечисления языка и строку компилятора. Компилятор должен убедиться, что строка компилятора достаточно специфична для использования для выбора вычислителя выражений; Рекомендуется включить название компании. После создания пары Enum/Name программа установки для средства оценки выражений должна зарегистрировать эту пару в отладчике. Для этого вычислитель выражений должен задать следующий раздел реестра: %VSRegistryRoot%\Debugger\CodeView Compilers%CodeViewLanguageCode%:%CompilerName% и определить VendorId/LanguageId.

(Унаследовано от DkmInstructionSymbol)
GetCompilerId(DkmWorkList, DkmInspectionSession, DkmCompletionRoutine<DkmGetCompilerIdAsyncResult>)

Возвращает идентификатор компилятора (LanguageId/VendorId) заданного символа.

Для средства чтения PDB Microsoft, если PDB был создан компилятором, который использовал ISymUnmanagedWriter, то средство чтения PDB сможет определить правильный DkmCompilerId из пары LanguageId/VendorId, переданной из ISymUnmanagedWriter.DefineDocument.

Если PDB был создан компилятором, который не использовал ISymUnmanagedWriter, средство чтения PDB может получить DkmCompilerId из записей PDB S_COMPILE*. Чтобы это работало, компилятор должен сначала создать запись S_COMPILE* для каждого компилятора. Компилятор должен правильно заполнить значение перечисления языка и строку компилятора. Компилятор должен убедиться, что строка компилятора достаточно специфична для использования для выбора вычислителя выражений; Рекомендуется включить название компании. После создания пары Enum/Name программа установки для средства оценки выражений должна зарегистрировать эту пару в отладчике. Для этого вычислитель выражений должен задать следующий раздел реестра: %VSRegistryRoot%\Debugger\CodeView Compilers%CodeViewLanguageCode%:%CompilerName% и определить VendorId/LanguageId.

Этот метод добавляет новый рабочий элемент в указанный рабочий список и возвращается после добавления рабочего элемента. Фактическая обработка рабочего элемента является асинхронной. Вызывающий объект получит уведомление о том, что запрос завершен в рамках процедуры завершения.

Ограничение расположения: API должен вызываться из компонента IDE (уровень > компонента 100 000).

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

(Унаследовано от DkmInstructionSymbol)
GetCurrentStatementRange()

Этот метод возвращает диапазон смещения IL, содержащий текущее смещение IL, как указано в адресе инструкции.

Ограничение расположения: API должен вызываться из компонента Monitor (уровень < компонента 100 000).

(Унаследовано от DkmInstructionSymbol)
GetDisassemblyLabel(DkmInspectionSession)

Возвращает имя символа, отображаемого в окне дизассемблирования. Для кода Microsoft C++ это основано на имени открытого символа.

Ограничение расположения: API должен вызываться из компонента IDE (уровень > компонента 100 000).

(Унаследовано от DkmInstructionSymbol)
GetEmbeddedDocument()

Возвращает внедренный документ, содержащий этот символ. Возвращает S_FALSE, если внедренный документ не существует.

Ограничение расположения: API должен вызываться из компонента IDE (уровень > компонента 100 000).

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

(Унаследовано от DkmInstructionSymbol)
GetGPUInstructionMetadataCallback(DkmInstructionAddress, DkmInstructionSymbol)

Этот метод возвращает сведения об адресе монитору отладки GPU.

(Унаследовано от DkmInstructionSymbol)
GetInlineFramesCount(DkmBasicSymbolInfoRequestFlags)

Возвращает количество встроенных кадров в заданном символе инструкции.

Ограничение расположения: API должен вызываться из компонента IDE (уровень > компонента 100 000).

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

(Унаследовано от DkmInstructionSymbol)
GetInlineFramesCount(DkmWorkList, DkmBasicSymbolInfoRequestFlags, DkmCompletionRoutine<DkmGetInlineFramesCountAsyncResult>)

Возвращает количество встроенных кадров в заданном символе инструкции.

Этот метод добавляет новый рабочий элемент в указанный рабочий список и возвращается после добавления рабочего элемента. Фактическая обработка рабочего элемента является асинхронной. Вызывающий объект получит уведомление о том, что запрос завершен в рамках процедуры завершения.

Ограничение расположения: API должен вызываться из компонента IDE (уровень > компонента 100 000).

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

(Унаследовано от DkmInstructionSymbol)
GetInlineSourcePosition(DkmStackWalkFrame, Boolean)

Возвращает позицию исходного файла (например, example.cs, строка 12) этого символа инструкции по указанному номеру встроенного кадра. Если этот символ инструкции не связан с исходным файлом, возвращается значение NULL (S_FALSE возвращает код в машинном коде).

Ограничение расположения: API должен вызываться из компонента IDE (уровень > компонента 100 000).

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

(Унаследовано от DkmInstructionSymbol)
GetInlineSourcePosition(DkmWorkList, DkmStackWalkFrame, DkmCompletionRoutine<DkmGetInlineSourcePositionAsyncResult>)

Возвращает позицию исходного файла (например, example.cs, строка 12) этого символа инструкции по указанному номеру встроенного кадра. Если этот символ инструкции не связан с исходным файлом, возвращается значение NULL (S_FALSE возвращает код в машинном коде).

Этот метод добавляет новый рабочий элемент в указанный рабочий список и возвращается после добавления рабочего элемента. Фактическая обработка рабочего элемента является асинхронной. Вызывающий объект получит уведомление о том, что запрос завершен в рамках процедуры завершения.

Ограничение расположения: API должен вызываться из компонента IDE (уровень > компонента 100 000).

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

(Унаследовано от DkmInstructionSymbol)
GetNextSteppingAction(DkmScriptInstructionSymbol, Boolean)

Обратный вызов, реализованный поставщиком символов скрипта, чтобы сообщить монитору отладки скрипта, что делать дальше при пошаговом выполнении.

Ограничение расположения: API должен вызываться из компонента Monitor (уровень < компонента 100 000).

GetNoSourceRanges()

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

(Унаследовано от DkmInstructionSymbol)
GetSourcePosition(DkmSourcePositionFlags, DkmInspectionSession, Boolean)

Возвращает позицию исходного файла (например, example.cs, строка 12) этого символа инструкции. Если этот символ инструкции не связан с исходным файлом, возвращается значение NULL (S_FALSE возвращает код в машинном коде).

Ограничение расположения: API должен вызываться из компонента IDE (уровень > компонента 100 000).

(Унаследовано от DkmInstructionSymbol)
GetSourcePosition(DkmWorkList, DkmSourcePositionFlags, DkmInspectionSession, DkmCompletionRoutine<DkmGetSourcePositionAsyncResult>)

Возвращает позицию исходного файла (например, example.cs, строка 12) этого символа инструкции. Если этот символ инструкции не связан с исходным файлом, возвращается значение NULL (S_FALSE возвращает код в машинном коде).

Этот метод добавляет новый рабочий элемент в указанный рабочий список и возвращается после добавления рабочего элемента. Фактическая обработка рабочего элемента является асинхронной. Вызывающий объект получит уведомление о том, что запрос завершен в рамках процедуры завершения.

Ограничение расположения: API должен вызываться из компонента IDE (уровень > компонента 100 000).

(Унаследовано от DkmInstructionSymbol)
GetSourcePositionCallback(DkmSourcePositionFlags, DkmInspectionSession, Boolean)

Возвращает позицию исходного файла (например, example.cs, строка 12) этого символа инструкции. Если этот символ инструкции не связан с исходным файлом, возвращается значение NULL (S_FALSE возвращает код в машинном коде).

Ограничение расположения: API должен вызываться из компонента Monitor (уровень < компонента 100 000).

(Унаследовано от DkmInstructionSymbol)
GetSourcePositionCallback(DkmWorkList, DkmSourcePositionFlags, DkmInspectionSession, DkmCompletionRoutine<DkmGetSourcePositionCallbackAsyncResult>)

Возвращает позицию исходного файла (например, example.cs, строка 12) этого символа инструкции. Если этот символ инструкции не связан с исходным файлом, возвращается значение NULL (S_FALSE возвращает код в машинном коде).

Этот метод добавляет новый рабочий элемент в указанный рабочий список и возвращается после добавления рабочего элемента. Фактическая обработка рабочего элемента является асинхронной. Вызывающий объект получит уведомление о том, что запрос завершен в рамках процедуры завершения.

Ограничение расположения: API должен вызываться из компонента Monitor (уровень < компонента 100 000).

(Унаследовано от DkmInstructionSymbol)
GetSteppingRanges(DkmSteppingRangeBoundary, Boolean)

Запрашивает поставщик символов, чтобы определить диапазоны инструкций, которые базовый монитор отладки должен выполнить для реализации шага.

Ограничение расположения. API должен вызываться из компонента Monitor (уровень < компонента 100 000).

(Унаследовано от DkmInstructionSymbol)
GetSteppingRanges(DkmWorkList, DkmSteppingRangeBoundary, Boolean, DkmCompletionRoutine<DkmGetSteppingRangesAsyncResult>)

Запрашивает поставщик символов, чтобы определить диапазоны инструкций, которые базовый монитор отладки должен выполнить для реализации шага.

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

Ограничение расположения. API должен вызываться из компонента Monitor (уровень < компонента 100 000).

(Унаследовано от DkmInstructionSymbol)
GetUserCodeSourcePositionCallback(DkmInspectionSession)

Возвращает позицию исходного файла (например, example.cs, строка 12) этого символа инструкции. Если этот символ инструкции не связан с исходным файлом или отсутствует в пользовательском коде, возвращается значение NULL (E_INSTRUCTION_NO_SOURCE код возврата).

Ограничение расположения. API должен вызываться из компонента Monitor (уровень < компонента 100 000).

(Унаследовано от DkmInstructionSymbol)
GetUserCodeSourcePositionCallback(DkmWorkList, DkmInspectionSession, DkmCompletionRoutine<DkmGetUserCodeSourcePositionCallbackAsyncResult>)

Возвращает позицию исходного файла (например, example.cs, строка 12) этого символа инструкции. Если этот символ инструкции не связан с исходным файлом или отсутствует в пользовательском коде, возвращается значение NULL (E_INSTRUCTION_NO_SOURCE код возврата).

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

Ограничение расположения. API должен вызываться из компонента Monitor (уровень < компонента 100 000).

(Унаследовано от DkmInstructionSymbol)
HasEmbeddedDocument()

Проверяет, содержит ли данный символ внедренный документ. Внедренные документы — это когда исходный файл (например, main.cs) внедряется в файл символов (например, example.pdb).

Ограничение расположения: API должен вызываться из компонента интегрированной среды разработки (уровень > компонента 100 000).

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

(Унаследовано от DkmInstructionSymbol)
HasLineInfo()

Запрашивает поставщик символов, чтобы определить, есть ли у нас сведения о строке. Используется монитором отладки для определения того, можно ли считать расположение пользовательским кодом.

Ограничение расположения. Для обычных символов может вызываться из любого компонента. Для динамических символов можно вызывать только на стороне сервера.

(Унаследовано от DkmInstructionSymbol)
HasLineInfo(DkmWorkList, DkmCompletionRoutine<DkmHasLineInfoAsyncResult>)

Запрашивает поставщик символов, чтобы определить, есть ли у нас сведения о строке. Используется монитором отладки для определения того, можно ли считать расположение пользовательским кодом.

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

Ограничение расположения. Для обычных символов может вызываться из любого компонента. Для динамических символов можно вызывать только на стороне сервера.

(Унаследовано от DkmInstructionSymbol)
IsHiddenCode(DkmWorkList, DkmInspectionSession, DkmInstructionAddress, DkmCompletionRoutine<DkmIsHiddenCodeAsyncResult>)

Возвращает значение , если этот символ инструкции находится в скрытом коде. Например, в управляемом коде номер строки 0xfeefee помечает исходную строку как скрытую.

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

Ограничение расположения: API должен вызываться из компонента интегрированной среды разработки (уровень > компонента 100 000).

(Унаследовано от DkmInstructionSymbol)

Применяется к