Share via


DkmModule Classe

Definizione

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.

public ref class DkmModule : Microsoft::VisualStudio::Debugger::DkmDataContainer
[System.Runtime.InteropServices.Guid("9fdf7d9f-e5ab-b363-6282-1da170173343")]
public class DkmModule : Microsoft.VisualStudio.Debugger.DkmDataContainer
[<System.Runtime.InteropServices.Guid("9fdf7d9f-e5ab-b363-6282-1da170173343")>]
type DkmModule = class
    inherit DkmDataContainer
Public Class DkmModule
Inherits DkmDataContainer
Ereditarietà
Ereditarietà
Attributi

Proprietà

CompilerId

LanguageId/VendorId per il compilatore che ha prodotto tutto il codice in questo modulo. Si tratta di Guid.Empty/Guid.Empty se il modulo può contenere una combinazione di lingue. Questa operazione sarà quasi sempre Guid.Empty/Guid.Empty per i moduli basati su PDB. In genere viene usato dai linguaggi dinamici per evitare round trip di rete per individuare la lingua di ogni simbolo.

Connection

[Facoltativo] Per i moduli da cui vengono caricati i simboli in remoto, la proprietà di connessione viene usata per determinare da dove ha avuto origine la connessione. In caso contrario, sarà NULL.

FilePath

[Facoltativo] Se specificato, contiene il percorso completo del file di simboli che esegue il backup di DkmModule ,ad esempio c:\myproj\bin\Debug\myproj.pdb.

Questa API è stata introdotta in Visual Studio 16 RTM (DkmApiVersion.VS16RTMPreview).

Flags

Flag che indicano tratti di questo oggetto DkmModule.

Questa API è stata introdotta in Visual Studio 17 Update 2 (DkmApiVersion.VS17Update2).

Id

Coppia guid usata per identificare in modo univoco un'istanza di DkmModule specifica.

IsUnloaded

Restituisce true se per questo oggetto è stato generato un evento 'unloaded', ad esempio DkmThread::Unload, o se l'oggetto è stato chiuso. Si noti che è necessario prestare attenzione quando si controlla questo stato come, senza sincronizzazione, lo stato restituito potrebbe non essere più accurato dopo la lettura.

(Ereditato da DkmDataContainer)
Name

Nome del modulo.

SymbolsConnection

[Facoltativo] Se non null, viene specificata una connessione a un processo di lavoro in cui vengono elaborati i simboli per questo DkmModule. Questo valore sarà Null se i simboli vengono caricati nel processo IDE o se vengono caricati nel debugger remoto (DkmModule.Connection non null).

Questa API è stata introdotta in Visual Studio 16 RTM (DkmApiVersion.VS16RTMPreview).

Metodi

Create(DkmModuleId, String, DkmCompilerId, DkmTransportConnection, DkmDataItem)

Crea un nuovo oggetto DkmModule, che rappresenta i simboli per uno o più moduli caricati (istanze del modulo). Questi oggetti vengono creati dai provider di simboli. Dopo aver creato l'oggetto DkmModule, i provider di simboli devono chiamare DkmModuleInstance.SetModule per associare DkmModuleInstance e DkmModule.

Questo metodo invierà un evento ModuleCreate.

Create(DkmModuleId, String, DkmCompilerId, DkmTransportConnection, DkmWorkerProcessConnection, String, DkmDataItem)

Crea un nuovo oggetto DkmModule, che rappresenta i simboli per uno o più moduli caricati (istanze del modulo). Questi oggetti vengono creati dai provider di simboli. Dopo aver creato l'oggetto DkmModule, i provider di simboli devono chiamare DkmModuleInstance.SetModule per associare DkmModuleInstance e DkmModule.

Questo metodo invierà un evento ModuleCreate.

Questa API è stata introdotta in Visual Studio 16 RTM (DkmApiVersion.VS16RTMPreview).

Create(DkmModuleId, String, DkmCompilerId, DkmTransportConnection, DkmWorkerProcessConnection, String, DkmModuleSymbolFlags, DkmDataItem)

Crea un nuovo oggetto DkmModule, che rappresenta i simboli per uno o più moduli caricati (istanze del modulo). Questi oggetti vengono creati dai provider di simboli. Dopo aver creato l'oggetto DkmModule, i provider di simboli devono chiamare DkmModuleInstance.SetModule per associare DkmModuleInstance e DkmModule.

Questo metodo invierà un evento ModuleCreate.

Questa API è stata introdotta in Visual Studio 17 Update 2 (DkmApiVersion.VS17Update2).

EnumSymbolsDocuments()

Enumera i documenti simbolo del file di simboli associato al modulo.

Vincolo location: l'API deve essere chiamata da un componente IDE (livello > componente 100.000).

Questa API è stata introdotta in Visual Studio 16 Update 5 (DkmApiVersion.VS16Update5).

EnumSymbolsDocuments(DkmWorkList, DkmCompletionRoutine<DkmEnumSymbolsDocumentsAsyncResult>)

Enumera i documenti simbolo del file di simboli associato al modulo.

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 Update 5 (DkmApiVersion.VS16Update5).

FindDocuments(DkmSourceFileId)

Restituisce oggetti documento dai parametri di ricerca contenuti nella query del documento. Se il file di simboli non contiene un riferimento a questo documento, l'oggetto documento restituito sarà NULL (S_FALSE codice restituito in nativo). Gli oggetti documento restituiti devono essere chiusi in modo esplicito dal chiamante quando il chiamante viene eseguito con il documento.

Vincolo location: l'API deve essere chiamata da un componente IDE (livello > componente 100.000).

FindDocuments(DkmWorkList, DkmSourceFileId, DkmCompletionRoutine<DkmFindDocumentsAsyncResult>)

Restituisce oggetti documento dai parametri di ricerca contenuti nella query del documento. Se il file di simboli non contiene un riferimento a questo documento, l'oggetto documento restituito sarà NULL (S_FALSE codice restituito in nativo). Gli oggetti documento restituiti devono essere chiusi in modo esplicito dal chiamante quando il chiamante viene eseguito con il documento.

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).

FindModule(DkmModuleId)

Trovare un oggetto DkmModule. Se non è presente alcun oggetto con la chiave di input specificata, FindModule avrà esito negativo.

GetAcceleratorTagTableSize(UInt32)

Ottiene un indirizzo C++ AMP per un registro.

Vincolo location: l'API deve essere chiamata da un componente IDE (livello > componente 100.000).

GetCompilerOptions()

Questo metodo restituisce i flag del compilatore del modulo GPU specificato.

GetDataItem<T>()

Ottiene l'istanza di 'T' aggiunta a questa istanza del contenitore. Se questo contenitore non contiene un 'T', questa funzione restituirà Null.

(Ereditato da DkmDataContainer)
GetEntryPointSymbols()

GetEntryPointSymbols viene usato dal gestore dei punti di interruzione per trovare i simboli del punto di ingresso nell'eseguibile di avvio. Per il codice gestito, questo simbolo viene definito usando ISymUnmanagedWriter::SetUserEntryPoint. Per il codice nativo, questo simbolo viene trovato cercando la funzione 'main' (main, WinMain e così via). Un terzo può eseguire l'override del punto di ingresso implementando il proprio provider di simboli o implementando IDkmEntryPointQuery.

Vincolo location: l'API deve essere chiamata da un componente Monitor (livello < componente 100.000).

GetExpensiveHashValue(DkmSourceFileId, DkmHashAlgorithmId)

Recupera un valore hash "costoso" dal valore DkmSourceFileId specificato.

Vincolo location: l'API deve essere chiamata da un componente IDE (livello > componente 100.000).

Questa API è stata introdotta in Visual Studio 17 Update 7 (DkmApiVersion.VS17Update7).

GetFirstMethodInFirstDocument()

Restituisce il primo metodo nel primo documento.

GetFunctionInfo(DkmWorkList, String, DkmCompletionRoutine<DkmGetFunctionInfoAsyncResult>)

Search simboli di un modulo per una funzione con il nome specificato. Restituisce l'RVA e le dimensioni se vengono trovate.

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).

GetFunctionInfo(String)

Search simboli di un modulo per una funzione con il nome specificato. Restituisce l'RVA e le dimensioni se vengono trovate.

Vincolo location: l'API deve essere chiamata da un componente Monitor (livello < componente 100.000).

GetFunctionLabels(UInt64)

Ottiene il nome del simbolo per l'RVA.

Vincolo location: l'API deve essere chiamata da un componente IDE (livello > componente 100.000).

Questa API è stata introdotta in Visual Studio 16 Update 3 (DkmApiVersion.VS16Update3).

GetFunctionRva(UInt64)

Ottiene l'RVA della funzione contenente l'RVA specificato.

Vincolo location: l'API deve essere chiamata da un componente IDE (livello > componente 100.000).

Questa API è stata introdotta in Visual Studio 16 Update 3 (DkmApiVersion.VS16Update3).

GetInstructionOffsetForRva(UInt32)

GetInstructionOffsetForRva viene usato dai componenti per eseguire il provider di simboli di query per eseguire l'offset delle istruzioni e la traduzione RVA per DPC++.

Vincolo percorso: l'API deve essere chiamata da un componente IDE (livello > di componente 100.000).

GetLinkerFixupRecords()

Recupera i record di correzione del linker per il modulo.

Vincolo percorso: l'API deve essere chiamata da un componente IDE (livello > di componente 100.000).

Questa API è stata introdotta in Visual Studio 16 RTM (DkmApiVersion.VS16RTM).

GetMethodSymbolStoreData(DkmClrMethodId)

Restituisce gli ambiti all'interno di un metodo. Ci sarà sempre almeno un ambito.

GetMethodSymbolStoreData(DkmWorkList, DkmClrMethodId, DkmCompletionRoutine<DkmGetMethodSymbolStoreDataAsyncResult>)

Restituisce gli ambiti all'interno di un metodo. Ci sarà sempre almeno un ambito.

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.

GetMethodSymbolStoreDataPreRemap(DkmClrMethodId, Int32)

Restituisce gli ambiti all'interno di un metodo. Ci sarà sempre almeno un ambito.

GetMethodSymbolStoreDataPreRemap(DkmWorkList, DkmClrMethodId, DkmCompletionRoutine<DkmGetMethodSymbolStoreDataPreRemapAsyncResult>)

Restituisce gli ambiti all'interno di un metodo. Ci sarà sempre almeno un ambito.

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.

GetModuleInstances()

Un DkmModule è la rappresentazione del gestore dei simboli di un modulo e non è associata a alcun processo, connessione o istanza di runtime. Questo metodo restituisce tutte le DkmModuleInstances che vengono mappate a questo DkmModule. Un DkmModule può essere associato a zero istanze nel caso in cui tutti i moduli siano ora scaricati. In questo caso, GetModuleInstances restituirà una matrice vuota (S_FALSE codice restituito in nativo).

GetModules()

GetModules enumera tutti gli oggetti DkmModule creati.

GetPointerToHLSLRegister(Int32, UInt32, UInt32, UInt32, UInt32, UInt32, UInt32, UInt32, UInt32, Boolean)

Ottiene un indirizzo C++ AMP per un registro.

Vincolo percorso: l'API deve essere chiamata da un componente IDE (livello > di componente 100.000).

GetPublicSymbolByNameCallback(DkmWorkList, String, DkmCompletionRoutine<DkmGetPublicSymbolByNameCallbackAsyncResult>)

Restituisce l'RVA per un S_PUBLIC32 per un nome specifico in base alla stringa.

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.

GetPublicSymbolByNameCallback(String)

Restituisce l'RVA per un S_PUBLIC32 per un nome specifico in base alla stringa.

GetRegisterRelativeSymbolName(DkmWorkList, UInt32, Int32, UInt32, DkmProcessorArchitecture, DkmCompletionRoutine<DkmGetRegisterRelativeSymbolNameAsyncResult>)

Ottiene il nome del simbolo per un valore relativo del registro.

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).

Questa API è stata introdotta in Visual Studio 16 RTM (DkmApiVersion.VS16RTM).

GetRegisterRelativeSymbolName(UInt32, Int32, UInt32, DkmProcessorArchitecture)

Ottiene il nome del simbolo per un valore relativo del registro.

Vincolo percorso: l'API deve essere chiamata da un componente IDE (livello > di componente 100.000).

Questa API è stata introdotta in Visual Studio 16 RTM (DkmApiVersion.VS16RTM).

GetScriptDocuments()

GetScriptDocuments enumera gli elementi DkmScriptDocument di questo oggetto DkmModule.

GetSourceLinkData(DkmModuleInstance)

Restituisce il contenuto del flusso di collegamento di origine per un modulo se il flusso esiste.

Vincolo percorso: l'API deve essere chiamata da un componente IDE (livello > di componente 100.000).

Questa API è stata introdotta in Visual Studio 17 RTM (DkmApiVersion.VS17RTM).

GetSourceLinkData(DkmWorkList, DkmModuleInstance, DkmCompletionRoutine<DkmGetSourceLinkDataAsyncResult>)

Restituisce il contenuto del flusso di collegamento di origine per un modulo se il flusso esiste.

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).

Questa API è stata introdotta in Visual Studio 17 RTM (DkmApiVersion.VS17RTM).

GetSourceLinkInfo(String)

Restituisce le informazioni SourceLink dal file di simboli per il percorso del file richiesto.

Vincolo percorso: l'API deve essere chiamata da un componente IDE (livello > di componente 100.000).

Questa API è stata introdotta in Visual Studio 15 RTM (DkmApiVersion.VS15RTM).

GetSourceServerData(DkmModuleInstance)

Restituisce il contenuto dei dati del flusso del server di origine per un modulo se il flusso esiste.

Vincolo percorso: l'API deve essere chiamata da un componente IDE (livello > di componente 100.000).

GetSourceServerData(DkmWorkList, DkmModuleInstance, DkmCompletionRoutine<DkmGetSourceServerDataAsyncResult>)

Restituisce il contenuto dei dati del flusso del server di origine per un modulo se il flusso esiste.

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).

GetSymbolFilePath()

Restituisce il percorso del file di simboli che restituisce un oggetto DkmModule.

Vincolo percorso: l'API deve essere chiamata da un componente IDE (livello > di componente 100.000).

GetSymbolFilePath(DkmWorkList, DkmCompletionRoutine<DkmGetSymbolFilePathAsyncResult>)

Restituisce il percorso del file di simboli che restituisce un oggetto DkmModule.

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).

GetSymbolFileRawBytes()

GetSymbolFileRawBytes viene usato per recuperare i byte non elaborati di un file di simboli dal lato remoto. Attualmente è supportato solo per i PDB portatili dinamici. Verrà restituito al massimo 10 MB.

Vincolo percorso: l'API deve essere chiamata da un componente IDE (livello > di componente 100.000).

Questa API è stata introdotta in Visual Studio 14 Update 3 Micro Update (DkmApiVersion.VS14Update3MicroUpdate3).

GetSymbolInterface(Guid)

GetSymbolInterface viene usato per ottenere un'interfaccia COM non elaborata in un archivio simboli. Ciò è utile per i chiamanti che trovano l'astrazione del simbolo presentata dal debugger per essere troppo restrittiva per le proprie esigenze o semplicemente indesiderata a causa della modalità di implementazione del componente.

Vincolo location: con l'eccezione dei simboli gestiti, questo metodo deve essere chiamato dallo stesso processo in cui il provider di simboli ha aperto il file di simboli. Per i file PDB nativi, ciò significa che l'API deve essere chiamata dal processo IDE. Per i simboli gestiti, viene fornito un subset dell'API del provider di simboli su entrambi i lati della connessione remota.

GetSymbolNameForRVA(DkmWorkList, UInt32, DkmCompletionRoutine<DkmGetSymbolNameForRVAAsyncResult>)

Ottiene il nome del simbolo per l'applicazione di controllo degli accessi in base al ruolo.

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).

Questa API è stata introdotta in Visual Studio 16 RTM (DkmApiVersion.VS16RTM).

GetSymbolNameForRVA(UInt32, UInt64)

Ottiene il nome del simbolo per l'applicazione di controllo degli accessi in base al ruolo.

Vincolo percorso: l'API deve essere chiamata da un componente IDE (livello > di componente 100.000).

Questa API è stata introdotta in Visual Studio 16 RTM (DkmApiVersion.VS16RTM).

GetTokenSymbolStoreAttribute(DkmWorkList, Int32, Boolean, String, DkmCompletionRoutine<DkmGetTokenSymbolStoreAttributeAsyncResult>)

Ottiene un attributo personalizzato in base al nome. Non da confondere con gli attributi personalizzati dei metadati, questi attributi vengono mantenuti nell'archivio simboli.

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.

GetTokenSymbolStoreAttribute(Int32, Boolean, String)

Ottiene un attributo personalizzato in base al nome. Non da confondere con gli attributi personalizzati dei metadati, questi attributi vengono mantenuti nell'archivio simboli.

IsValidAcceleratorTag(UInt32, UInt32)

Verificare se il tag del puntatore dell'acceleratore è valido.

Vincolo percorso: l'API deve essere chiamata da un componente IDE (livello > di componente 100.000).

OnModuleSymbolsReplaced()

Generare un evento ModuleSymbolsReplaced. I componenti che implementano l'interfaccia del sink di eventi riceveranno la notifica dell'evento. Il controllo restituirà una volta che tutti i componenti sono stati notificati.

Questa API è stata introdotta in Visual Studio 16 Update 5 (DkmApiVersion.VS16Update5).

RemoveDataItem<T>()

Rimuovere l'istanza di 'T' da questo contenitore. In genere non è necessario chiamare questo metodo come contenitore di dati verrà svuotato automaticamente quando l'oggetto viene chiuso.

(Ereditato da DkmDataContainer)
SetDataItem<T>(DkmDataCreationDisposition, T)

Inserire un nuovo elemento nel contenitore di dati.

(Ereditato da DkmDataContainer)
SetPointerToHLSLRegister(UInt64, Int32, UInt32, UInt32, UInt32, UInt32, UInt32, UInt32, UInt32)

Imposta un indirizzo C++ AMP per un registro.

Vincolo percorso: l'API deve essere chiamata da un componente IDE (livello > di componente 100.000).

SymbolsHaveEmbeddedDocuments()

Verifica se i simboli associati al modulo hanno documenti incorporati.

Vincolo percorso: l'API deve essere chiamata da un componente IDE (livello > di componente 100.000).

Questa API è stata introdotta in Visual Studio 16 Update 5 (DkmApiVersion.VS16Update5).

TranslateAcceleratorTagByIP(UInt32, UInt32, UInt32, UInt32, UInt32, UInt32, UInt32, UInt32)

Tradurre il tag del puntatore dell'acceleratore in attributi di registrazione HLSL.

TranslateAcceleratorTagByRva(UInt32, UInt32, UInt32, UInt32, UInt32, UInt32, UInt32, UInt32)

Tradurre il tag del puntatore dell'acceleratore in attributi di registrazione HLSL usando l'indirizzo virtuale relativo.

Vincolo percorso: l'API deve essere chiamata da un componente IDE (livello > di componente 100.000).

UndecorateName(String, UInt32)

Annulla la dedecorate un nome di simbolo.

Vincolo percorso: l'API deve essere chiamata da un componente IDE (livello > di componente 100.000).

Si applica a