DkmNativeInstructionSymbol Classe
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
DkmNativeInstructionSymbol rappresenta un'istruzione nativa all'interno di un modulo del processo di destinazione. DkmNativeInstructionSymbol sono 1:1 con le istruzioni native sottostanti. Quindi, se sono presenti due istanze di modello di un metodo (ad esempio: MyMethod CString> e MyMethod<<int>) se il linker unisce le due istanze in una singola funzione tramite la riduzione COMDAT, i metodi saranno identici. Se il linker non è in grado di unire le due istanze, entrambe le funzioni a livello di utente verranno visualizzate come una DkmNativeInstructionSymbol.
public ref class DkmNativeInstructionSymbol : Microsoft::VisualStudio::Debugger::Symbols::DkmInstructionSymbol
[Windows::Foundation::Metadata::WebHostHidden]
public ref class DkmNativeInstructionSymbol : Microsoft::VisualStudio::Debugger::Symbols::DkmInstructionSymbol
[Windows::Foundation::Metadata::WebHostHidden]
class DkmNativeInstructionSymbol : Microsoft::VisualStudio::Debugger::Symbols::DkmInstructionSymbol
[System.Runtime.InteropServices.Guid("0eb834ca-c591-449c-66ad-e016093977d2")]
public class DkmNativeInstructionSymbol : Microsoft.VisualStudio.Debugger.Symbols.DkmInstructionSymbol
[<System.Runtime.InteropServices.Guid("0eb834ca-c591-449c-66ad-e016093977d2")>]
type DkmNativeInstructionSymbol = class
inherit DkmInstructionSymbol
Public Class DkmNativeInstructionSymbol
Inherits DkmInstructionSymbol
- Ereditarietà
- Attributi
Proprietà
| Module |
La classe DkmModule rappresenta un bundle di codice (ad esempio dll o exe) che è o una volta caricato in uno o più processi. La classe DkmModule è l'oggetto centrale delle API del simbolo ed è 1:1 con la notazione del gestore simboli di ciò che viene caricato. Se un bundle di codice viene caricato in tre processi diversi (o lo stesso processo, ma con tre indirizzi di base diversi o tre domini app diversi), ma il gestore dei simboli pensa a tutti questi processi come identici, sarà presente un solo oggetto modulo. (Ereditato da DkmInstructionSymbol) |
| RuntimeType |
L'ID runtime identifica l'ambiente di esecuzione per un determinato pezzo di codice. Gli ID di runtime vengono usati dal dispatcher per decidere a quale monitoraggio inviare. Si noti che l'ordinamento del guid ID di runtime è leggermente significativo perché questo determina il runtime che ottiene il primo colpo durante l'arbitrato. Pertanto, se si vuole dichiarare una nuova istanza di runtime basata su CLR, l'ID runtime deve essere minore di DkmRuntimeId.Clr. (Ereditato da DkmInstructionSymbol) |
| RVA |
RVA di InstructionPointer all'interno del modulo. |
| TagValue |
DkmInstructionSymbol è una classe base astratta. Questa enumerazione indica la classe derivata di questo oggetto è un'istanza di . (Ereditato da DkmInstructionSymbol) |
Metodi
| Bind(DkmModuleInstance) |
Associa un simbolo di istruzione a una particolare istanza del modulo. Un simbolo di istruzione è connesso a un DkmModule anziché a DkmModuleInstance, quindi non è associato a un particolare processo, dominio dell'app o indirizzo di base del modulo. (Ereditato da DkmInstructionSymbol) |
| Create(DkmModule, UInt32) |
Create una nuova istanza dell'oggetto DkmNativeInstructionSymbol. |
| GetAlternateSourcePosition(DkmSourcePositionFlags) |
Restituisce una posizione alternativa del file di origine (ad esempio, example.cs, riga 12) per questo simbolo di istruzione. Attualmente viene usato negli scenari di mapping di origine per restituire il percorso di origine originale (non mappato). Questa API verrà chiamata dall'interfaccia utente del debugger nei casi in cui non è possibile trovare il percorso di origine primario. Vincolo location: l'API deve essere chiamata da un componente IDE (livello > componente 100.000). Questa API è stata introdotta in Visual Studio 12 Update 3 (DkmApiVersion.VS12Update3). (Ereditato da DkmInstructionSymbol) |
| GetBasicInfo(DkmWorkList, DkmModuleInstance, DkmBasicSymbolInfoRequestFlags, DkmCompletionRoutine<DkmGetBasicSymbolInfoAsyncResult>) |
Calcola in modo asincrono le informazioni sui simboli di base per un determinato DkmInstructionSymbol. Questo metodo aggiungerà un nuovo elemento di lavoro all'elenco di lavoro specificato e restituirà una volta accodato l'elemento di lavoro. L'elaborazione effettiva dell'elemento di lavoro è asincrona. Il chiamante riceverà una notifica che la richiesta viene completata tramite la routine di completamento. Vincolo location: l'API deve essere chiamata da un componente IDE (livello > componente 100.000). Questa API è stata introdotta in Visual Studio 16 RTM (DkmApiVersion.VS16RTMPreview). (Ereditato da DkmInstructionSymbol) |
| GetCompilerId(DkmInspectionSession) |
Restituisce l'ID del compilatore (LanguageId/VendorId) di un determinato simbolo. Per il lettore PDB Microsoft, se il PDB è stato creato da un compilatore che usa ISymUnmanagedWriter, il lettore PDB sarà in grado di determinare il valore DkmCompilerId corretto dalla coppia LanguageId/VendorId passata da ISymUnmanagedWriter.DefineDocument. Se il PDB è stato creato da un compilatore che non usa ISymUnmanagedWriter, il lettore PDB potrebbe essere in grado di ottenere DkmCompilerId dai record PDB S_COMPILE*. Affinché funzioni, il compilatore deve prima generare il record S_COMPILE* per ogni compiland. Il compilatore deve assicurarsi di compilare correttamente il valore di enumerazione del linguaggio e la stringa del compilatore. Il compilatore deve garantire che la stringa del compilatore sia sufficientemente specifica da usare per la selezione di un analizzatore di espressioni; è consigliabile includere un nome della società. Dopo aver creato la coppia Enum/Name, il programma di installazione dell'analizzatore di espressioni deve quindi registrare questa coppia con il debugger. A tale scopo, l'analizzatore di espressioni deve impostare questa chiave del Registro di sistema: %VSRegistryRoot%\Debugger\CodeView Compilers%CodeViewLanguageCode%:%CompilerName% e definire VendorId/LanguageId. (Ereditato da DkmInstructionSymbol) |
| GetCompilerId(DkmWorkList, DkmInspectionSession, DkmCompletionRoutine<DkmGetCompilerIdAsyncResult>) |
Restituisce l'ID del compilatore (LanguageId/VendorId) di un determinato simbolo. Per il lettore PDB Microsoft, se il PDB è stato creato da un compilatore che usa ISymUnmanagedWriter, il lettore PDB sarà in grado di determinare il valore DkmCompilerId corretto dalla coppia LanguageId/VendorId passata da ISymUnmanagedWriter.DefineDocument. Se il PDB è stato creato da un compilatore che non usa ISymUnmanagedWriter, il lettore PDB potrebbe essere in grado di ottenere DkmCompilerId dai record PDB S_COMPILE*. Affinché funzioni, il compilatore deve prima generare il record S_COMPILE* per ogni compiland. Il compilatore deve assicurarsi di compilare correttamente il valore di enumerazione del linguaggio e la stringa del compilatore. Il compilatore deve garantire che la stringa del compilatore sia sufficientemente specifica da usare per la selezione di un analizzatore di espressioni; è consigliabile includere un nome della società. Dopo aver creato la coppia Enum/Name, il programma di installazione dell'analizzatore di espressioni deve quindi registrare questa coppia con il debugger. A tale scopo, l'analizzatore di espressioni deve impostare questa chiave del Registro di sistema: %VSRegistryRoot%\Debugger\CodeView Compilers%CodeViewLanguageCode%:%CompilerName% e definire VendorId/LanguageId. Questo metodo aggiungerà un nuovo elemento di lavoro all'elenco di lavoro specificato e restituirà una volta accodato l'elemento di lavoro. L'elaborazione effettiva dell'elemento di lavoro è asincrona. Il chiamante riceverà una notifica che la richiesta viene completata tramite la routine di completamento. Vincolo location: l'API deve essere chiamata da un componente IDE (livello > componente 100.000). Questa API è stata introdotta in Visual Studio 16 RTM (DkmApiVersion.VS16RTMPreview). (Ereditato da DkmInstructionSymbol) |
| GetCurrentStatementRange() |
Questo metodo restituisce l'intervallo di offset IL che contiene l'offset IL corrente, come specificato nell'indirizzo dell'istruzione. Vincolo location: l'API deve essere chiamata da un componente Monitor (livello < componente 100.000). (Ereditato da DkmInstructionSymbol) |
| GetDisassemblyLabel(DkmInspectionSession) |
Restituisce il nome del simbolo come dovrebbe essere visualizzato nella finestra disassembly. Per il codice Microsoft C++, si basa sul nome del simbolo pubblico. Vincolo location: l'API deve essere chiamata da un componente IDE (livello > componente 100.000). (Ereditato da DkmInstructionSymbol) |
| GetEmbeddedDocument() |
Restituisce il documento incorporato contenente questo simbolo. Restituisce S_FALSE se il documento incorporato non esiste. Vincolo location: l'API deve essere chiamata da un componente IDE (livello > componente 100.000). Questa API è stata introdotta in Visual Studio 15 Update 5 (DkmApiVersion.VS15Update5). (Ereditato da DkmInstructionSymbol) |
| GetGPUInstructionMetadataCallback(DkmInstructionAddress, DkmInstructionSymbol) |
Questo metodo restituisce le informazioni sull'indirizzo al monitoraggio di debug gpu. (Ereditato da DkmInstructionSymbol) |
| GetInlineFramesCount(DkmBasicSymbolInfoRequestFlags) |
Restituisce il numero di frame inline in corrispondenza del simbolo di istruzione specificato. Vincolo location: l'API deve essere chiamata da un componente IDE (livello > componente 100.000). Questa API è stata introdotta in Visual Studio 16 RTM (DkmApiVersion.VS16RTMPreview). (Ereditato da DkmInstructionSymbol) |
| GetInlineFramesCount(DkmWorkList, DkmBasicSymbolInfoRequestFlags, DkmCompletionRoutine<DkmGetInlineFramesCountAsyncResult>) |
Restituisce il numero di frame inline in corrispondenza del simbolo di istruzione specificato. Questo metodo aggiungerà un nuovo elemento di lavoro all'elenco di lavoro specificato e restituirà una volta accodato l'elemento di lavoro. L'elaborazione effettiva dell'elemento di lavoro è asincrona. Il chiamante riceverà una notifica che la richiesta viene completata tramite la routine di completamento. Vincolo location: l'API deve essere chiamata da un componente IDE (livello > componente 100.000). Questa API è stata introdotta in Visual Studio 16 RTM (DkmApiVersion.VS16RTMPreview). (Ereditato da DkmInstructionSymbol) |
| GetInlineSourcePosition(DkmStackWalkFrame, Boolean) |
Restituisce la posizione del file di origine (ad esempio, example.cs, riga 12) di questo simbolo di istruzione in corrispondenza del numero di frame inline specificato. Se questo simbolo di istruzione non è associato a un file di origine, viene restituito null (S_FALSE codice restituito in nativo). Vincolo location: l'API deve essere chiamata da un componente IDE (livello > componente 100.000). Questa API è stata introdotta in Visual Studio 15 RTM (DkmApiVersion.VS15RTM). (Ereditato da DkmInstructionSymbol) |
| GetInlineSourcePosition(DkmWorkList, DkmStackWalkFrame, DkmCompletionRoutine<DkmGetInlineSourcePositionAsyncResult>) |
Restituisce la posizione del file di origine (ad esempio, example.cs, riga 12) di questo simbolo di istruzione in corrispondenza del numero di frame inline specificato. Se questo simbolo di istruzione non è associato a un file di origine, viene restituito null (S_FALSE codice restituito in nativo). Questo metodo aggiungerà un nuovo elemento di lavoro all'elenco di lavoro specificato e restituirà una volta accodato l'elemento di lavoro. L'elaborazione effettiva dell'elemento di lavoro è asincrona. Il chiamante riceverà una notifica che la richiesta viene completata tramite la routine di completamento. Vincolo location: l'API deve essere chiamata da un componente IDE (livello > componente 100.000). Questa API è stata introdotta in Visual Studio 15 RTM (DkmApiVersion.VS15RTM). (Ereditato da DkmInstructionSymbol) |
| GetNativeInstructionMetadataCallback(DkmInstructionAddress) |
Restituisce le informazioni sull'indirizzo al monitoraggio di debug nativo. |
| GetNoSourceRanges() |
Esegue una query sul provider di simboli per determinare gli intervalli di istruzioni che non corrispondono ad alcuna istruzione di origine utente e vengono usati dal monitoraggio di debug di base per eseguire sempre le istruzioni durante l'istruzione. (Ereditato da DkmInstructionSymbol) |
| GetSourcePosition(DkmSourcePositionFlags, DkmInspectionSession, Boolean) |
Restituisce la posizione del file di origine (ad esempio, example.cs, riga 12) di questo simbolo di istruzione. Se questo simbolo di istruzione non è associato a un file di origine, viene restituito null (S_FALSE codice restituito in nativo). Vincolo location: l'API deve essere chiamata da un componente IDE (livello > componente 100.000). (Ereditato da DkmInstructionSymbol) |
| GetSourcePosition(DkmWorkList, DkmSourcePositionFlags, DkmInspectionSession, DkmCompletionRoutine<DkmGetSourcePositionAsyncResult>) |
Restituisce la posizione del file di origine (ad esempio, example.cs, riga 12) di questo simbolo di istruzione. Se questo simbolo di istruzione non è associato a un file di origine, viene restituito null (S_FALSE codice restituito in nativo). Questo metodo aggiungerà un nuovo elemento di lavoro all'elenco di lavoro specificato e restituirà una volta accodato l'elemento di lavoro. L'elaborazione effettiva dell'elemento di lavoro è asincrona. Il chiamante riceverà una notifica che la richiesta viene completata tramite la routine di completamento. Vincolo location: l'API deve essere chiamata da un componente IDE (livello > componente 100.000). (Ereditato da DkmInstructionSymbol) |
| GetSourcePositionCallback(DkmSourcePositionFlags, DkmInspectionSession, Boolean) |
Restituisce la posizione del file di origine (ad esempio: example.cs, riga 12) di questo simbolo di istruzione. Se questo simbolo di istruzione non è associato a un file di origine, viene restituito null (S_FALSE codice restituito in nativo). Vincolo percorso: l'API deve essere chiamata da un componente Monitor (livello < di componente 100.000). (Ereditato da DkmInstructionSymbol) |
| GetSourcePositionCallback(DkmWorkList, DkmSourcePositionFlags, DkmInspectionSession, DkmCompletionRoutine<DkmGetSourcePositionCallbackAsyncResult>) |
Restituisce la posizione del file di origine (ad esempio, example.cs, riga 12) di questo simbolo di istruzione. Se questo simbolo di istruzione non è associato a un file di origine, viene restituito null (S_FALSE codice restituito in nativo). Questo metodo aggiungerà un nuovo elemento di lavoro all'elenco di lavoro specificato e restituirà una volta aggiunto l'elemento di lavoro. L'elaborazione effettiva dell'elemento di lavoro è asincrona. Il chiamante riceverà una notifica che la richiesta viene completata tramite la routine di completamento. Vincolo percorso: l'API deve essere chiamata da un componente Monitor (livello < di componente 100.000). (Ereditato da DkmInstructionSymbol) |
| GetSteppingNativeInstructionMetadata(DkmModuleInstance, DkmInstructionAddress) |
Chiamato dal servizio Migrazione del database nativo per recuperare i dati relativi a un'istruzione usata per decidere come eseguire l'istruzione. Vincolo location: l'API deve essere chiamata da un componente Monitor (livello < componente 100.000). Questa API è stata introdotta in Visual Studio 14 RTM (DkmApiVersion.VS14RTM). |
| GetSteppingRanges(DkmModuleInstance, DkmInstructionAddress, DkmSteppingRangeBoundary, Boolean) |
Esegue una query sul provider di simboli per determinare gli intervalli di istruzioni che il monitoraggio di debug di base deve eseguire per implementare un passaggio. Vincolo location: l'API deve essere chiamata da un componente Monitor (livello < componente 100.000). Questa API è stata introdotta in Visual Studio 14 RTM (DkmApiVersion.VS14RTM). |
| GetSteppingRanges(DkmSteppingRangeBoundary, Boolean) |
Esegue una query sul provider di simboli per determinare gli intervalli di istruzioni che il monitoraggio di debug di base deve eseguire per implementare un passaggio. Vincolo percorso: l'API deve essere chiamata da un componente Monitor (livello < di componente 100.000). (Ereditato da DkmInstructionSymbol) |
| GetSteppingRanges(DkmWorkList, DkmModuleInstance, DkmInstructionAddress, DkmSteppingRangeBoundary, Boolean, DkmCompletionRoutine<DkmGetSteppingRangesAsyncResult>) |
Esegue una query sul provider di simboli per determinare gli intervalli di istruzioni che il monitoraggio di debug di base deve eseguire per implementare un passaggio. Questo metodo aggiungerà un nuovo elemento di lavoro all'elenco di lavoro specificato e restituirà una volta accodato l'elemento di lavoro. L'elaborazione effettiva dell'elemento di lavoro è asincrona. Il chiamante riceverà una notifica che la richiesta viene completata tramite la routine di completamento. Vincolo location: l'API deve essere chiamata da un componente Monitor (livello < componente 100.000). Questa API è stata introdotta in Visual Studio 14 RTM (DkmApiVersion.VS14RTM). |
| GetSteppingRanges(DkmWorkList, DkmSteppingRangeBoundary, Boolean, DkmCompletionRoutine<DkmGetSteppingRangesAsyncResult>) |
Esegue una query sul provider di simboli per determinare gli intervalli di istruzioni che il monitoraggio di debug di base deve eseguire per implementare un passaggio. Questo metodo aggiungerà un nuovo elemento di lavoro all'elenco di lavoro specificato e restituirà una volta aggiunto l'elemento di lavoro. L'elaborazione effettiva dell'elemento di lavoro è asincrona. Il chiamante riceverà una notifica che la richiesta viene completata tramite la routine di completamento. Vincolo percorso: l'API deve essere chiamata da un componente Monitor (livello < di componente 100.000). (Ereditato da DkmInstructionSymbol) |
| GetUserCodeSourcePositionCallback(DkmInspectionSession) |
Restituisce la posizione del file di origine (ad esempio: example.cs, riga 12) di questo simbolo di istruzione. Se questo simbolo di istruzione non è associato a un file di origine o meno nel codice utente, viene restituito null (E_INSTRUCTION_NO_SOURCE codice restituito). Vincolo percorso: l'API deve essere chiamata da un componente Monitor (livello < di componente 100.000). (Ereditato da DkmInstructionSymbol) |
| GetUserCodeSourcePositionCallback(DkmWorkList, DkmInspectionSession, DkmCompletionRoutine<DkmGetUserCodeSourcePositionCallbackAsyncResult>) |
Restituisce la posizione del file di origine (ad esempio: example.cs, riga 12) di questo simbolo di istruzione. Se questo simbolo di istruzione non è associato a un file di origine o meno nel codice utente, viene restituito null (E_INSTRUCTION_NO_SOURCE codice restituito). Questo metodo aggiungerà un nuovo elemento di lavoro all'elenco di lavoro specificato e restituirà una volta aggiunto l'elemento di lavoro. L'elaborazione effettiva dell'elemento di lavoro è asincrona. Il chiamante riceverà una notifica che la richiesta viene completata tramite la routine di completamento. Vincolo percorso: l'API deve essere chiamata da un componente Monitor (livello < di componente 100.000). (Ereditato da DkmInstructionSymbol) |
| HasEmbeddedDocument() |
Verifica se il simbolo specificato ha un documento incorporato. I documenti incorporati sono quando un file di origine (ad esempio: main.cs) viene incorporato all'interno del file di simboli (ad esempio.pdb). Vincolo percorso: l'API deve essere chiamata da un componente IDE (livello > di componente 100.000). Questa API è stata introdotta in Visual Studio 15 Update 8 (DkmApiVersion.VS15Update8). (Ereditato da DkmInstructionSymbol) |
| HasLineInfo() |
Esegue una query sul provider di simboli per determinare se sono presenti informazioni sulla riga. Usato dal monitoraggio di debug per decidere se la posizione può essere considerata codice utente. Vincolo location: per i simboli ordinari, può essere chiamato da qualsiasi componente. Per i simboli dinamici, è possibile chiamare solo sul lato server. (Ereditato da DkmInstructionSymbol) |
| HasLineInfo(DkmWorkList, DkmCompletionRoutine<DkmHasLineInfoAsyncResult>) |
Esegue una query sul provider di simboli per determinare se sono presenti informazioni sulla riga. Usato dal monitoraggio di debug per decidere se la posizione può essere considerata codice utente. Questo metodo aggiungerà un nuovo elemento di lavoro all'elenco di lavoro specificato e restituirà una volta aggiunto l'elemento di lavoro. L'elaborazione effettiva dell'elemento di lavoro è asincrona. Il chiamante riceverà una notifica che la richiesta viene completata tramite la routine di completamento. Vincolo location: per i simboli ordinari, può essere chiamato da qualsiasi componente. Per i simboli dinamici, è possibile chiamare solo sul lato server. (Ereditato da DkmInstructionSymbol) |
| IsHiddenCode(DkmWorkList, DkmInspectionSession, DkmInstructionAddress, DkmCompletionRoutine<DkmIsHiddenCodeAsyncResult>) |
Restituisce se questo simbolo di istruzione è in codice nascosto. Ad esempio, nel codice gestito, il numero di riga 0xfeefee contrassegna una riga di origine come nascosta. Questo metodo aggiungerà un nuovo elemento di lavoro all'elenco di lavoro specificato e restituirà una volta aggiunto l'elemento di lavoro. L'elaborazione effettiva dell'elemento di lavoro è asincrona. Il chiamante riceverà una notifica che la richiesta viene completata tramite la routine di completamento. Vincolo percorso: l'API deve essere chiamata da un componente IDE (livello > di componente 100.000). (Ereditato da DkmInstructionSymbol) |