DkmClrInstructionSymbol Класс

Определение

Дкмклринструктионсимбол представляет инструкцию IL, которая выполняется в целевом процессе в среде CLR. Этот объект содержит номер версии метода. Поэтому в сценариях "изменить и продолжить" символ инструкции будет отличаться для разных версий метода. Этот объект не содержит сведений о параметрах универсальной привязки. Таким образом, различные универсальные экземпляры метода (например < > , String и MyMethod < int > ) представлены одним и тем же символом инструкции, так как среда CLR представляет их с помощью одного маркера метода.

Производные классы: ДкмклрнЦинструктионсимбол

public ref class DkmClrInstructionSymbol : Microsoft::VisualStudio::Debugger::Symbols::DkmInstructionSymbol
[Windows::Foundation::Metadata::WebHostHidden]
public ref class DkmClrInstructionSymbol : Microsoft::VisualStudio::Debugger::Symbols::DkmInstructionSymbol
[Windows::Foundation::Metadata::WebHostHidden]
class DkmClrInstructionSymbol : Microsoft::VisualStudio::Debugger::Symbols::DkmInstructionSymbol
[System.Runtime.InteropServices.Guid("8e7388ae-e3e2-122c-5560-09f77dfaed9d")]
public class DkmClrInstructionSymbol : Microsoft.VisualStudio.Debugger.Symbols.DkmInstructionSymbol
[<System.Runtime.InteropServices.Guid("8e7388ae-e3e2-122c-5560-09f77dfaed9d")>]
type DkmClrInstructionSymbol = class
    inherit DkmInstructionSymbol
Public Class DkmClrInstructionSymbol
Inherits DkmInstructionSymbol
Наследование
DkmClrInstructionSymbol
Производный
Атрибуты

Свойства

ILOffset

Смещениеil — это индекс инструкции IL, которую представляет этот символ. Это значение может быть задано как UInt32. MaxValue для инструкции, которая находится в данном методе, но не привязана к определенной инструкции. Используется для машинных инструкций CLR, которые не сопоставляются с инструкцией IL.

MethodId

Пара версий и маркеров для этого метода.

Module

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

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

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

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

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

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

Методы

Bind(DkmModuleInstance)

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

(Унаследовано от DkmInstructionSymbol)
Create(DkmModule, DkmClrMethodId, UInt32)

Создайте новый экземпляр объекта Дкмклринструктионсимбол.

GetAllAwaitExpressionInfoForStatement()

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

GetAllAwaitExpressionInfoForStatement(DkmWorkList, DkmCompletionRoutine<DkmGetAllAwaitExpressionInfoForStatementAsyncResult>)

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

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

GetAlternateSourcePosition(DkmSourcePositionFlags)

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

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

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

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

Если текущий метод является асинхронным методом, то возвращается метод начального метода для этого асинхронного метода.

GetAsyncKickoffMethod(DkmWorkList, DkmCompletionRoutine<DkmGetAsyncKickoffMethodAsyncResult>)

Если текущий метод является асинхронным методом, то возвращается метод начального метода для этого асинхронного метода.

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

GetAsyncMethodCatchHandlerILOffset(UInt32)

Возвращает необязательное начальное смещение IL созданного асинхронного метода обработчика catch.

GetAsyncMethodLocation()

Возвращает расположение символа инструкции в методе.

GetAsyncMethodLocation(DkmWorkList, DkmCompletionRoutine<DkmGetAsyncMethodLocationAsyncResult>)

Возвращает расположение символа инструкции в методе.

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

GetBasicInfo(DkmWorkList, DkmModuleInstance, DkmBasicSymbolInfoRequestFlags, DkmCompletionRoutine<DkmGetBasicSymbolInfoAsyncResult>)

Асинхронно высчитывает базовые символьные сведения для заданного Дкминструктионсимбол.

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

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

Этот API появился в Visual Studio 16 RTM (Дкмапиверсион. VS16RTMPreview).

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

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

Для модуля чтения PDB (Майкрософт), если PDB-файл был создан компилятором, который использовал ISymUnmanagedWriter, модуль чтения PDB сможет определить правильный Дкмкомпилерид из пары LanguageId/VendorId, передаваемой из ISymUnmanagedWriter. DefineDocument.

Если файл PDB был создан компилятором, который не использовал ISymUnmanagedWriter, модуль чтения PDB может получить Дкмкомпилерид из записей S_COMPILE * PDB. Чтобы это работало, компилятор должен сначала создать запись S_COMPILE * для каждого компилируемого объекта. Компилятор должен правильно заполнить значение перечисления языков и строку компилятора. Компилятор должен убедиться, что строка компилятора достаточно специфична для использования при выборе средства оценки выражений. рекомендуется включить название компании. После выпуска пары "перечисление-имя" программа установки для оценки выражений должна зарегистрировать эту пару с помощью отладчика. Для этого средство оценки выражений должно установить следующий раздел реестра: компиляторы%Всрегистрирут%\дебугжер\кодевиев % кодевиевлангуажекоде%:% компилернаме% и определить VendorID/LanguageId.

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

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

Для модуля чтения PDB (Майкрософт), если PDB-файл был создан компилятором, который использовал ISymUnmanagedWriter, модуль чтения PDB сможет определить правильный Дкмкомпилерид из пары LanguageId/VendorId, передаваемой из ISymUnmanagedWriter. DefineDocument.

Если файл PDB был создан компилятором, который не использовал ISymUnmanagedWriter, модуль чтения PDB может получить Дкмкомпилерид из записей S_COMPILE * PDB. Чтобы это работало, компилятор должен сначала создать запись S_COMPILE * для каждого компилируемого объекта. Компилятор должен правильно заполнить значение перечисления языков и строку компилятора. Компилятор должен убедиться, что строка компилятора достаточно специфична для использования при выборе средства оценки выражений. рекомендуется включить название компании. После выпуска пары "перечисление-имя" программа установки для оценки выражений должна зарегистрировать эту пару с помощью отладчика. Для этого средство оценки выражений должно установить следующий раздел реестра: компиляторы%Всрегистрирут%\дебугжер\кодевиев % кодевиевлангуажекоде%:% компилернаме% и определить VendorID/LanguageId.

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

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

Этот API появился в Visual Studio 16 RTM (Дкмапиверсион. VS16RTMPreview).

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Этот API появился в Visual Studio 16 RTM (Дкмапиверсион. VS16RTMPreview).

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

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

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

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

Этот API появился в Visual Studio 16 RTM (Дкмапиверсион. VS16RTMPreview).

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

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

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

Этот API появился в Visual Studio 15 RTM (Дкмапиверсион. VS15RTM).

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

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

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

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

Этот API появился в Visual Studio 15 RTM (Дкмапиверсион. VS15RTM).

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

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

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

Этот API появился в Visual Studio 14 с обновлением 1 (Дкмапиверсион. VS14Update1).

GetManagedCppMethodScope(DkmNativeCppInspectionSession)

Возвращает символьную информацию, относящуюся к самой внутренней активной области расположения, указанной в указанном символе инструкции, которая должна быть скомпилирована с управляемым C++.

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

Этот API появился в Visual Studio 14 с обновлением 1 (Дкмапиверсион. VS14Update1).

GetMethodLocalSymbols()

Возвращает области внутри метода. Всегда будет существовать по крайней мере одна область.

Ограничение расположения. Этот API не будет выполняться при вызове из компонента IDE для запроса информации для скомпилированного кода ASP.NET на стороне сервера или динамически скомпилированного кода.

Этот API появился в Visual Studio 12 RTM (Дкмапиверсион. VS12RTM).

GetMethodLocalSymbols(DkmWorkList, DkmCompletionRoutine<DkmGetMethodLocalSymbolsAsyncResult>)

Возвращает области внутри метода. Всегда будет существовать по крайней мере одна область.

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

Ограничение расположения. Этот API не будет выполняться при вызове из компонента IDE для запроса информации для скомпилированного кода ASP.NET на стороне сервера или динамически скомпилированного кода.

Этот API появился в Visual Studio 12 RTM (Дкмапиверсион. VS12RTM).

GetMethodSymbolStoreAttribute(DkmWorkList, String, DkmCompletionRoutine<DkmGetMethodSymbolStoreAttributeAsyncResult>)

Возвращает настраиваемый атрибут на основе его имени. Не следует путать с пользовательскими атрибутами метаданных, эти атрибуты хранятся в хранилище символов.

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

Ограничение расположения. Этот API не будет выполняться при вызове из компонента IDE для запроса информации для скомпилированного кода ASP.NET на стороне сервера или динамически скомпилированного кода.

Этот API появился в Visual Studio 12 RTM (Дкмапиверсион. VS12RTM).

GetMethodSymbolStoreAttribute(String)

Возвращает настраиваемый атрибут на основе его имени. Не следует путать с пользовательскими атрибутами метаданных, эти атрибуты хранятся в хранилище символов.

Ограничение расположения. Этот API не будет выполняться при вызове из компонента IDE для запроса информации для скомпилированного кода ASP.NET на стороне сервера или динамически скомпилированного кода.

Этот API появился в Visual Studio 12 RTM (Дкмапиверсион. VS12RTM).

GetNextAwaitExpressionInfo()

Возвращает сведения о выходе и возобновлении следующего выражения await.

GetNextAwaitExpressionInfo(DkmWorkList, DkmCompletionRoutine<DkmGetNextAwaitExpressionInfoAsyncResult>)

Возвращает сведения о выходе и возобновлении следующего выражения await.

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

GetNoSourceRanges()

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

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

Возвращает точки последовательности для метода CLR из файла символов.

Ограничение расположения. Этот API не будет выполняться при вызове из компонента IDE для запроса информации для скомпилированного кода ASP.NET на стороне сервера или динамически скомпилированного кода.

Этот API появился в Visual Studio 16 RTM (Дкмапиверсион. VS16RTMPreview).

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 должен вызываться из компонента монитора (уровень компонентов < 100 000).

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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