DkmInstructionSymbol.GetCompilerId Метод

Определение

Перегрузки

GetCompilerId(DkmInspectionSession)

Возвращает идентификатор компилятора (LanguageId/VendorId) для заданного символа.Returns the compiler id (LanguageId/VendorId) of a given symbol.

Для модуля чтения PDB (Майкрософт), если PDB-файл был создан компилятором, который использовал ISymUnmanagedWriter, модуль чтения PDB сможет определить правильный Дкмкомпилерид из пары LanguageId/VendorId, передаваемой из ISymUnmanagedWriter. DefineDocument.For the Microsoft PDB reader, if the PDB was created by a compiler which used ISymUnmanagedWriter, then the PDB reader will be able to determine the correct DkmCompilerId from the LanguageId/VendorId pair passed from ISymUnmanagedWriter.DefineDocument.

Если файл PDB был создан компилятором, который не использовал ISymUnmanagedWriter, модуль чтения PDB может получить Дкмкомпилерид из записей S_COMPILE * PDB.If the PDB was created by a compiler which did not use ISymUnmanagedWriter, the PDB reader may be able to obtain the DkmCompilerId from the S_COMPILE* PDB records. Чтобы это работало, компилятор должен сначала создать запись S_COMPILE * для каждого компилируемого объекта.For this to work, the compiler must first emit the S_COMPILE* record for each compiland. Компилятор должен правильно заполнить значение перечисления языков и строку компилятора.The compiler needs to be sure to correctly fill out the language enumeration value, and the compiler string. Компилятор должен убедиться, что строка компилятора достаточно специфична для использования при выборе средства оценки выражений. рекомендуется включить название компании.The compiler should ensure that the compiler string is sufficiently specific to use for selecting an expression evaluator; it is recommended to include a company name. После выпуска пары "перечисление-имя" программа установки для оценки выражений должна зарегистрировать эту пару с помощью отладчика.After emitting the Enum/Name pair, the setup for the expression evaluator should then register this pair with the debugger. Для этого средство оценки выражений должно установить следующий раздел реестра: компиляторы%Всрегистрирут%\дебугжер\кодевиев % кодевиевлангуажекоде%:% компилернаме% и определить VendorID/LanguageId.To do so, the expression evaluator should set this registry key: %VSRegistryRoot%\Debugger\CodeView Compilers%CodeViewLanguageCode%:%CompilerName% and define the VendorId/LanguageId.

GetCompilerId(DkmWorkList, DkmInspectionSession, DkmCompletionRoutine<DkmGetCompilerIdAsyncResult>)

Возвращает идентификатор компилятора (LanguageId/VendorId) для заданного символа.Returns the compiler id (LanguageId/VendorId) of a given symbol.

Для модуля чтения PDB (Майкрософт), если PDB-файл был создан компилятором, который использовал ISymUnmanagedWriter, модуль чтения PDB сможет определить правильный Дкмкомпилерид из пары LanguageId/VendorId, передаваемой из ISymUnmanagedWriter. DefineDocument.For the Microsoft PDB reader, if the PDB was created by a compiler which used ISymUnmanagedWriter, then the PDB reader will be able to determine the correct DkmCompilerId from the LanguageId/VendorId pair passed from ISymUnmanagedWriter.DefineDocument.

Если файл PDB был создан компилятором, который не использовал ISymUnmanagedWriter, модуль чтения PDB может получить Дкмкомпилерид из записей S_COMPILE * PDB.If the PDB was created by a compiler which did not use ISymUnmanagedWriter, the PDB reader may be able to obtain the DkmCompilerId from the S_COMPILE* PDB records. Чтобы это работало, компилятор должен сначала создать запись S_COMPILE * для каждого компилируемого объекта.For this to work, the compiler must first emit the S_COMPILE* record for each compiland. Компилятор должен правильно заполнить значение перечисления языков и строку компилятора.The compiler needs to be sure to correctly fill out the language enumeration value, and the compiler string. Компилятор должен убедиться, что строка компилятора достаточно специфична для использования при выборе средства оценки выражений. рекомендуется включить название компании.The compiler should ensure that the compiler string is sufficiently specific to use for selecting an expression evaluator; it is recommended to include a company name. После выпуска пары "перечисление-имя" программа установки для оценки выражений должна зарегистрировать эту пару с помощью отладчика.After emitting the Enum/Name pair, the setup for the expression evaluator should then register this pair with the debugger. Для этого средство оценки выражений должно установить следующий раздел реестра: компиляторы%Всрегистрирут%\дебугжер\кодевиев % кодевиевлангуажекоде%:% компилернаме% и определить VendorID/LanguageId.To do so, the expression evaluator should set this registry key: %VSRegistryRoot%\Debugger\CodeView Compilers%CodeViewLanguageCode%:%CompilerName% and define the VendorId/LanguageId.

Этот метод добавляет новый рабочий элемент в указанный список работ и возвращается после добавления рабочего элемента.This method will append a new work item to the specified work list, and return once the work item has been appended. Фактическая обработка рабочего элемента выполняется асинхронно.The actual processing of the work item is asynchronous. Вызывающий объект будет уведомлен о завершении выполнения запроса через подпрограмму завершения.The caller will be notified that the request is complete through the completion routine.

Ограничение расположения: API должен вызываться из компонента IDE (уровень компонентов > 100 000).Location constraint: API must be called from an IDE component (component level > 100,000).

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

GetCompilerId(DkmInspectionSession)

Возвращает идентификатор компилятора (LanguageId/VendorId) для заданного символа.Returns the compiler id (LanguageId/VendorId) of a given symbol.

Для модуля чтения PDB (Майкрософт), если PDB-файл был создан компилятором, который использовал ISymUnmanagedWriter, модуль чтения PDB сможет определить правильный Дкмкомпилерид из пары LanguageId/VendorId, передаваемой из ISymUnmanagedWriter. DefineDocument.For the Microsoft PDB reader, if the PDB was created by a compiler which used ISymUnmanagedWriter, then the PDB reader will be able to determine the correct DkmCompilerId from the LanguageId/VendorId pair passed from ISymUnmanagedWriter.DefineDocument.

Если файл PDB был создан компилятором, который не использовал ISymUnmanagedWriter, модуль чтения PDB может получить Дкмкомпилерид из записей S_COMPILE * PDB.If the PDB was created by a compiler which did not use ISymUnmanagedWriter, the PDB reader may be able to obtain the DkmCompilerId from the S_COMPILE* PDB records. Чтобы это работало, компилятор должен сначала создать запись S_COMPILE * для каждого компилируемого объекта.For this to work, the compiler must first emit the S_COMPILE* record for each compiland. Компилятор должен правильно заполнить значение перечисления языков и строку компилятора.The compiler needs to be sure to correctly fill out the language enumeration value, and the compiler string. Компилятор должен убедиться, что строка компилятора достаточно специфична для использования при выборе средства оценки выражений. рекомендуется включить название компании.The compiler should ensure that the compiler string is sufficiently specific to use for selecting an expression evaluator; it is recommended to include a company name. После выпуска пары "перечисление-имя" программа установки для оценки выражений должна зарегистрировать эту пару с помощью отладчика.After emitting the Enum/Name pair, the setup for the expression evaluator should then register this pair with the debugger. Для этого средство оценки выражений должно установить следующий раздел реестра: компиляторы%Всрегистрирут%\дебугжер\кодевиев % кодевиевлангуажекоде%:% компилернаме% и определить VendorID/LanguageId.To do so, the expression evaluator should set this registry key: %VSRegistryRoot%\Debugger\CodeView Compilers%CodeViewLanguageCode%:%CompilerName% and define the VendorId/LanguageId.

public:
 Microsoft::VisualStudio::Debugger::Evaluation::DkmCompilerId GetCompilerId(Microsoft::VisualStudio::Debugger::Evaluation::DkmInspectionSession ^ InspectionSession);
public Microsoft.VisualStudio.Debugger.Evaluation.DkmCompilerId GetCompilerId (Microsoft.VisualStudio.Debugger.Evaluation.DkmInspectionSession InspectionSession);
member this.GetCompilerId : Microsoft.VisualStudio.Debugger.Evaluation.DkmInspectionSession -> Microsoft.VisualStudio.Debugger.Evaluation.DkmCompilerId
Public Function GetCompilerId (InspectionSession As DkmInspectionSession) As DkmCompilerId

Параметры

InspectionSession
DkmInspectionSession

[Входные, необязательные] Ссылочный объект, описывающий текущий сеанс проверки.[In,Optional] A reference object describing the current inspection session. Распространенный способ использования — поставщики символов для кэширования уточняющих запросов с помощью контейнера данных.Common usage is for symbol providers to cache lookups using its data container.

Возвращаемое значение

DkmCompilerId

Заполняет LanguageId/VendorId для компилятора, который создал код для этого символа.[Out] LanguageId/VendorId for the compiler which produced the code for this symbol. Если это неизвестное (например, для этого блока нет сведений об символах), оба значения будут иметь значение GUID. Empty.If this is unknown (ex: no symbols info for this block), both values will be Guid.Empty. В противном случае оба значения не должны равняться нулю.Otherwise, both values should be non-zero.

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

GetCompilerId(DkmWorkList, DkmInspectionSession, DkmCompletionRoutine<DkmGetCompilerIdAsyncResult>)

Возвращает идентификатор компилятора (LanguageId/VendorId) для заданного символа.Returns the compiler id (LanguageId/VendorId) of a given symbol.

Для модуля чтения PDB (Майкрософт), если PDB-файл был создан компилятором, который использовал ISymUnmanagedWriter, модуль чтения PDB сможет определить правильный Дкмкомпилерид из пары LanguageId/VendorId, передаваемой из ISymUnmanagedWriter. DefineDocument.For the Microsoft PDB reader, if the PDB was created by a compiler which used ISymUnmanagedWriter, then the PDB reader will be able to determine the correct DkmCompilerId from the LanguageId/VendorId pair passed from ISymUnmanagedWriter.DefineDocument.

Если файл PDB был создан компилятором, который не использовал ISymUnmanagedWriter, модуль чтения PDB может получить Дкмкомпилерид из записей S_COMPILE * PDB.If the PDB was created by a compiler which did not use ISymUnmanagedWriter, the PDB reader may be able to obtain the DkmCompilerId from the S_COMPILE* PDB records. Чтобы это работало, компилятор должен сначала создать запись S_COMPILE * для каждого компилируемого объекта.For this to work, the compiler must first emit the S_COMPILE* record for each compiland. Компилятор должен правильно заполнить значение перечисления языков и строку компилятора.The compiler needs to be sure to correctly fill out the language enumeration value, and the compiler string. Компилятор должен убедиться, что строка компилятора достаточно специфична для использования при выборе средства оценки выражений. рекомендуется включить название компании.The compiler should ensure that the compiler string is sufficiently specific to use for selecting an expression evaluator; it is recommended to include a company name. После выпуска пары "перечисление-имя" программа установки для оценки выражений должна зарегистрировать эту пару с помощью отладчика.After emitting the Enum/Name pair, the setup for the expression evaluator should then register this pair with the debugger. Для этого средство оценки выражений должно установить следующий раздел реестра: компиляторы%Всрегистрирут%\дебугжер\кодевиев % кодевиевлангуажекоде%:% компилернаме% и определить VendorID/LanguageId.To do so, the expression evaluator should set this registry key: %VSRegistryRoot%\Debugger\CodeView Compilers%CodeViewLanguageCode%:%CompilerName% and define the VendorId/LanguageId.

Этот метод добавляет новый рабочий элемент в указанный список работ и возвращается после добавления рабочего элемента.This method will append a new work item to the specified work list, and return once the work item has been appended. Фактическая обработка рабочего элемента выполняется асинхронно.The actual processing of the work item is asynchronous. Вызывающий объект будет уведомлен о завершении выполнения запроса через подпрограмму завершения.The caller will be notified that the request is complete through the completion routine.

Ограничение расположения: API должен вызываться из компонента IDE (уровень компонентов > 100 000).Location constraint: API must be called from an IDE component (component level > 100,000).

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

public:
 void GetCompilerId(Microsoft::VisualStudio::Debugger::DkmWorkList ^ WorkList, Microsoft::VisualStudio::Debugger::Evaluation::DkmInspectionSession ^ InspectionSession, Microsoft::VisualStudio::Debugger::DkmCompletionRoutine<Microsoft::VisualStudio::Debugger::Symbols::DkmGetCompilerIdAsyncResult> ^ CompletionRoutine);
public void GetCompilerId (Microsoft.VisualStudio.Debugger.DkmWorkList WorkList, Microsoft.VisualStudio.Debugger.Evaluation.DkmInspectionSession InspectionSession, Microsoft.VisualStudio.Debugger.DkmCompletionRoutine<Microsoft.VisualStudio.Debugger.Symbols.DkmGetCompilerIdAsyncResult> CompletionRoutine);
member this.GetCompilerId : Microsoft.VisualStudio.Debugger.DkmWorkList * Microsoft.VisualStudio.Debugger.Evaluation.DkmInspectionSession * Microsoft.VisualStudio.Debugger.DkmCompletionRoutine<Microsoft.VisualStudio.Debugger.Symbols.DkmGetCompilerIdAsyncResult> -> unit
Public Sub GetCompilerId (WorkList As DkmWorkList, InspectionSession As DkmInspectionSession, CompletionRoutine As DkmCompletionRoutine(Of DkmGetCompilerIdAsyncResult))

Параметры

WorkList
DkmWorkList

Ворклист добавить новый рабочий элемент в.WorkList to append the new work item to.

InspectionSession
DkmInspectionSession

[Входные, необязательные] Ссылочный объект, описывающий текущий сеанс проверки.[In,Optional] A reference object describing the current inspection session. Распространенный способ использования — поставщики символов для кэширования уточняющих запросов с помощью контейнера данных.Common usage is for symbol providers to cache lookups using its data container.

CompletionRoutine
DkmCompletionRoutine<DkmGetCompilerIdAsyncResult>

Подпрограмма, которая будет срабатывать после завершения запроса.Routine to fire when the request is complete. Если запрос успешно добавлен в список работ, он всегда будет срабатывать (включая время отмены операции).If the request is successfully appended to the work list, this will always fire (including when the operation is canceled). Это никогда не будет срабатывать в случае сбоя при добавлении рабочего элемента.This will never fire if appending the work item fails.

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