Sdílet prostřednictvím


DkmModule Třída

Definice

Třída DkmModule představuje sadu kódu (např. dll nebo exe), která je nebo byla jednou načtena do jednoho nebo více procesů. Třída DkmModule je centrálním objektem rozhraní API symbolů a je 1:1 s notací obslužné rutiny symbolu, co je načteno. Pokud se sada kódu načte do tří různých procesů (nebo stejného procesu, ale se třemi různými základními adresami nebo třemi různými doménami aplikace), ale obslužná rutina symbolu si myslí, že jsou všechny stejné, bude existovat pouze jeden objekt modulu.

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
Dědičnost
Dědičnost
Atributy

Vlastnosti

CompilerId

LanguageId/VendorId kompilátoru, který vytvořil veškerý kód v tomto modulu. Toto je Guid.Empty/Guid.Empty, pokud modul může obsahovat kombinaci jazyků. To bude téměř vždy Guid.Empty/Guid.Empty pro moduly založené na PDB. Obecně se používá v dynamických jazycích, aby se zabránilo odezvě sítě, aby bylo možné zjistit jazyk jednotlivých symbolů.

Connection

[Volitelné] U modulů, kde se symboly načítají vzdáleně, se vlastnost připojení používá k určení, odkud připojení pochází. V opačném případě bude mít hodnotu NULL.

FilePath

[Volitelné] Pokud je tato možnost zadána, obsahuje úplnou cestu k souboru symbolů, která vrací modul DkmModule (např. c:\myproj\bin\Debug\myproj.pdb).

Toto rozhraní API bylo zavedeno v sadě Visual Studio 16 RTM (DkmApiVersion.VS16RTMPreview).

Flags

Příznaky, které označují vlastnosti tohoto objektu DkmModule.

Toto rozhraní API bylo zavedeno v sadě Visual Studio 17 Update 2 (DkmApiVersion.VS17Update2).

Id

Pár GUID sloužící k jedinečné identifikaci konkrétní instance DkmModule.

IsUnloaded

Vrátí hodnotu true, pokud byla pro tento objekt vyvolána událost unloaded (příklad: DkmThread::Unload je volána) nebo pokud byl objekt uzavřen. Mějte na paměti, že při kontrole tohoto stavu je potřeba střídmět, protože bez synchronizace nemusí být vrácený stav po přečtení přesný.

(Zděděno od DkmDataContainer)
Name

Název modulu

SymbolsConnection

[Volitelné] Pokud není hodnota null, určuje připojení k pracovnímu procesu, kde se zpracovávají symboly pro tento modul DkmModule. Tato hodnota bude null, pokud jsou symboly načteny v procesu IDE nebo pokud jsou načteny do vzdáleného ladicího programu (DkmModule.Connection není null).

Toto rozhraní API bylo zavedeno v sadě Visual Studio 16 RTM (DkmApiVersion.VS16RTMPreview).

Metody

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

Vytvoří nový objekt DkmModule, který představuje symboly pro jeden nebo více načtených modulů (instancí modulů). Tyto objekty jsou vytvořeny poskytovateli symbolů. Po vytvoření objektu DkmModule by zprostředkovatelé symbolů měli volat DkmModuleInstance.SetModule pro přidružení DkmModuleInstance a DkmModule dohromady.

Tato metoda odešle událost ModuleCreate.

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

Vytvoří nový objekt DkmModule, který představuje symboly pro jeden nebo více načtených modulů (instancí modulů). Tyto objekty jsou vytvořeny poskytovateli symbolů. Po vytvoření objektu DkmModule by zprostředkovatelé symbolů měli volat DkmModuleInstance.SetModule pro přidružení DkmModuleInstance a DkmModule dohromady.

Tato metoda odešle událost ModuleCreate.

Toto rozhraní API bylo zavedeno v sadě Visual Studio 16 RTM (DkmApiVersion.VS16RTMPreview).

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

Vytvoří nový objekt DkmModule, který představuje symboly pro jeden nebo více načtených modulů (instancí modulů). Tyto objekty jsou vytvořeny poskytovateli symbolů. Po vytvoření objektu DkmModule by zprostředkovatelé symbolů měli volat DkmModuleInstance.SetModule pro přidružení DkmModuleInstance a DkmModule dohromady.

Tato metoda odešle událost ModuleCreate.

Toto rozhraní API bylo zavedeno v sadě Visual Studio 17 Update 2 (DkmApiVersion.VS17Update2).

EnumSymbolsDocuments()

Vytvoří výčet dokumentů symbolů souboru symbolů přidruženého k modulu.

Omezení umístění: Rozhraní API se musí volat z komponenty IDE (úroveň > komponenty 100 000).

Toto rozhraní API bylo zavedeno v sadě Visual Studio 16 Update 5 (DkmApiVersion.VS16Update5).

EnumSymbolsDocuments(DkmWorkList, DkmCompletionRoutine<DkmEnumSymbolsDocumentsAsyncResult>)

Vytvoří výčet dokumentů symbolů souboru symbolů přidruženého k modulu.

Tato metoda přidá novou pracovní položku do zadaného pracovního seznamu a vrátí po připojení pracovní položky. Skutečné zpracování pracovní položky je asynchronní. Volající bude upozorněn, že žádost je dokončena prostřednictvím rutiny dokončení.

Omezení umístění: Rozhraní API se musí volat z komponenty IDE (úroveň > komponenty 100 000).

Toto rozhraní API bylo zavedeno v sadě Visual Studio 16 Update 5 (DkmApiVersion.VS16Update5).

FindDocuments(DkmSourceFileId)

Vrátí objekty dokumentu z parametrů hledání obsažených v dotazu na dokument. Pokud soubor symbolu neobsahuje odkaz na tento dokument, bude vrácený objekt dokumentu null (S_FALSE návratový kód v nativním nastavení). Vrácené objekty dokumentu musí volající explicitně zavřít, když je volající s dokumentem hotový.

Omezení umístění: Rozhraní API se musí volat z komponenty IDE (úroveň > komponenty 100 000).

FindDocuments(DkmWorkList, DkmSourceFileId, DkmCompletionRoutine<DkmFindDocumentsAsyncResult>)

Vrátí objekty dokumentu z parametrů hledání obsažených v dotazu na dokument. Pokud soubor symbolu neobsahuje odkaz na tento dokument, bude vrácený objekt dokumentu null (S_FALSE návratový kód v nativním nastavení). Vrácené objekty dokumentu musí volající explicitně zavřít, když je volající s dokumentem hotový.

Tato metoda přidá novou pracovní položku do zadaného pracovního seznamu a vrátí po připojení pracovní položky. Skutečné zpracování pracovní položky je asynchronní. Volající bude upozorněn, že žádost je dokončena prostřednictvím rutiny dokončení.

Omezení umístění: Rozhraní API se musí volat z komponenty IDE (úroveň > komponenty 100 000).

FindModule(DkmModuleId)

Najděte objekt DkmModule. Pokud neexistuje žádný objekt s daným vstupním klíčem, FindModule selže.

GetAcceleratorTagTableSize(UInt32)

Získá C++ AMP adresu pro registr.

Omezení umístění: Rozhraní API se musí volat z komponenty IDE (úroveň > komponenty 100 000).

GetCompilerOptions()

Tato metoda vrací příznaky kompilátoru daného modulu GPU.

GetDataItem<T>()

Získá instanci T, která byla přidána do této instance kontejneru. Pokud tento kontejner neobsahuje "T", vrátí tato funkce hodnotu null.

(Zděděno od DkmDataContainer)
GetEntryPointSymbols()

GetEntryPointSymbols používá správce zarážek k vyhledání symbolů vstupních bodů ve spouštěcím spustitelném souboru. Pro spravovaný kód je tento symbol definován pomocí ISymUnmanagedWriter::SetUserEntryPoint. Pro nativní kód se tento symbol najde tak, že vyhledáte různé funkce main (main, WinMain atd.). Třetí může přepsat vstupní bod buď implementací vlastního zprostředkovatele symbolů, nebo implementací IDkmEntryPointQuery.

Omezení umístění: Rozhraní API se musí volat z komponenty monitoru (úroveň < komponenty 100 000).

GetExpensiveHashValue(DkmSourceFileId, DkmHashAlgorithmId)

Načte "nákladnou" hodnotu hash ze zadaného DkmSourceFileId.

Omezení umístění: Rozhraní API se musí volat z komponenty IDE (úroveň > komponenty 100 000).

Toto rozhraní API bylo zavedeno v sadě Visual Studio 17 Update 7 (DkmApiVersion.VS17Update7).

GetFirstMethodInFirstDocument()

Vrátí první metodu v prvním dokumentu.

GetFunctionInfo(DkmWorkList, String, DkmCompletionRoutine<DkmGetFunctionInfoAsyncResult>)

Search symboly modulu pro funkci se zadaným názvem. Vrátí hodnotu RVA a velikost, pokud je nalezena.

Tato metoda přidá novou pracovní položku do zadaného pracovního seznamu a vrátí po připojení pracovní položky. Skutečné zpracování pracovní položky je asynchronní. Volající bude upozorněn, že žádost je dokončena prostřednictvím rutiny dokončení.

Omezení umístění: Rozhraní API se musí volat z komponenty monitoru (úroveň < komponenty 100 000).

GetFunctionInfo(String)

Search symboly modulu pro funkci se zadaným názvem. Vrátí hodnotu RVA a velikost, pokud je nalezena.

Omezení umístění: Rozhraní API se musí volat z komponenty monitoru (úroveň < komponenty 100 000).

GetFunctionLabels(UInt64)

Získá název symbolu pro RVA.

Omezení umístění: Rozhraní API se musí volat z komponenty IDE (úroveň > komponenty 100 000).

Toto rozhraní API bylo zavedeno v sadě Visual Studio 16 Update 3 (DkmApiVersion.VS16Update3).

GetFunctionRva(UInt64)

Získá RVA funkce obsahující zadaný RVA.

Omezení umístění: Rozhraní API se musí volat z komponenty IDE (úroveň > komponenty 100 000).

Toto rozhraní API bylo zavedeno v sadě Visual Studio 16 Update 3 (DkmApiVersion.VS16Update3).

GetInstructionOffsetForRva(UInt32)

Funkce GetInstructionOffsetForRva se používá v komponentách k dotazování zprostředkovatele symbolů k provedení posunu instrukce a překladu RVA pro DPC++.

Omezení umístění: Rozhraní API se musí volat z komponenty IDE (úroveň > komponenty 100 000).

GetLinkerFixupRecords()

Načte záznamy oprav linkeru pro modul.

Omezení umístění: Rozhraní API se musí volat z komponenty IDE (úroveň > komponenty 100 000).

Toto rozhraní API bylo zavedeno v sadě Visual Studio 16 RTM (DkmApiVersion.VS16RTM).

GetMethodSymbolStoreData(DkmClrMethodId)

Vrátí obory v rámci metody. Vždy bude existovat alespoň jeden obor.

GetMethodSymbolStoreData(DkmWorkList, DkmClrMethodId, DkmCompletionRoutine<DkmGetMethodSymbolStoreDataAsyncResult>)

Vrátí obory v rámci metody. Vždy bude existovat alespoň jeden obor.

Tato metoda přidá novou pracovní položku do zadaného pracovního seznamu a vrátí po připojení pracovní položky. Skutečné zpracování pracovní položky je asynchronní. Volající bude upozorněn, že žádost je dokončena prostřednictvím rutiny dokončení.

GetMethodSymbolStoreDataPreRemap(DkmClrMethodId, Int32)

Vrátí obory v rámci metody. Vždy bude existovat alespoň jeden obor.

GetMethodSymbolStoreDataPreRemap(DkmWorkList, DkmClrMethodId, DkmCompletionRoutine<DkmGetMethodSymbolStoreDataPreRemapAsyncResult>)

Vrátí obory v rámci metody. Vždy bude existovat alespoň jeden obor.

Tato metoda přidá novou pracovní položku do zadaného pracovního seznamu a vrátí po připojení pracovní položky. Skutečné zpracování pracovní položky je asynchronní. Volající bude upozorněn, že žádost je dokončena prostřednictvím rutiny dokončení.

GetModuleInstances()

DkmModule je reprezentace modulu obslužné rutiny symbolu a není vázána na žádný proces, připojení ani instanci modulu runtime. Tato metoda vrátí všechny instance DkmModuleInstance, které se mapují na tento DkmModule. Modul DkmModule může být vázán na nulové instance v případě, že všechny moduly jsou nyní uvolněny. V tomto případě GetModuleInstances vrátí prázdné pole (S_FALSE vrátí kód v nativním režimu).

GetModules()

GetModules vytvoří výčet všech vytvořených objektů DkmModule.

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

Získá C++ AMP adresu pro registr.

Omezení umístění: Rozhraní API se musí volat z komponenty IDE (úroveň > komponenty 100 000).

GetPublicSymbolByNameCallback(DkmWorkList, String, DkmCompletionRoutine<DkmGetPublicSymbolByNameCallbackAsyncResult>)

Vrátí hodnotu RVA pro S_PUBLIC32 pro konkrétní název podle řetězce.

Tato metoda přidá novou pracovní položku do zadaného pracovního seznamu a vrátí po připojení pracovní položky. Skutečné zpracování pracovní položky je asynchronní. Volající bude upozorněn, že žádost je dokončena prostřednictvím rutiny dokončení.

GetPublicSymbolByNameCallback(String)

Vrátí hodnotu RVA pro S_PUBLIC32 pro konkrétní název podle řetězce.

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

Získá název symbolu pro relativní hodnotu registru.

Tato metoda přidá novou pracovní položku do zadaného pracovního seznamu a vrátí po připojení pracovní položky. Skutečné zpracování pracovní položky je asynchronní. Volající bude upozorněn, že žádost je dokončena prostřednictvím rutiny dokončení.

Omezení umístění: Rozhraní API se musí volat z komponenty IDE (úroveň > komponenty 100 000).

Toto rozhraní API bylo zavedeno v sadě Visual Studio 16 RTM (DkmApiVersion.VS16RTM).

GetRegisterRelativeSymbolName(UInt32, Int32, UInt32, DkmProcessorArchitecture)

Získá název symbolu pro relativní hodnotu registru.

Omezení umístění: Rozhraní API se musí volat z komponenty IDE (úroveň > komponenty 100 000).

Toto rozhraní API bylo zavedeno v sadě Visual Studio 16 RTM (DkmApiVersion.VS16RTM).

GetScriptDocuments()

GetScriptDocuments výčet DkmScriptDocument elementy tohoto DkmModule objektu.

GetSourceLinkData(DkmModuleInstance)

Vrátí obsah dat datového proudu zdrojového propojení pro modul, pokud datový proud existuje.

Omezení umístění: Rozhraní API se musí volat z komponenty IDE (úroveň > komponenty 100 000).

Toto rozhraní API bylo zavedeno v sadě Visual Studio 17 RTM (DkmApiVersion.VS17RTM).

GetSourceLinkData(DkmWorkList, DkmModuleInstance, DkmCompletionRoutine<DkmGetSourceLinkDataAsyncResult>)

Vrátí obsah dat datového proudu zdrojového propojení pro modul, pokud datový proud existuje.

Tato metoda přidá novou pracovní položku do zadaného pracovního seznamu a vrátí po připojení pracovní položky. Skutečné zpracování pracovní položky je asynchronní. Volající bude upozorněn, že žádost je dokončena prostřednictvím rutiny dokončení.

Omezení umístění: Rozhraní API se musí volat z komponenty IDE (úroveň > komponenty 100 000).

Toto rozhraní API bylo zavedeno v sadě Visual Studio 17 RTM (DkmApiVersion.VS17RTM).

GetSourceLinkInfo(String)

Vrátí informace SourceLink ze souboru symbolu pro požadovanou cestu k souboru.

Omezení umístění: Rozhraní API se musí volat z komponenty IDE (úroveň > komponenty 100 000).

Toto rozhraní API bylo zavedeno v sadě Visual Studio 15 RTM (DkmApiVersion.VS15RTM).

GetSourceServerData(DkmModuleInstance)

Vrátí obsah dat datového proudu zdrojového serveru pro modul, pokud datový proud existuje.

Omezení umístění: Rozhraní API se musí volat z komponenty IDE (úroveň > komponenty 100 000).

GetSourceServerData(DkmWorkList, DkmModuleInstance, DkmCompletionRoutine<DkmGetSourceServerDataAsyncResult>)

Vrátí obsah dat datového proudu zdrojového serveru pro modul, pokud datový proud existuje.

Tato metoda přidá novou pracovní položku do zadaného pracovního seznamu a vrátí po připojení pracovní položky. Skutečné zpracování pracovní položky je asynchronní. Volající bude upozorněn, že žádost je dokončena prostřednictvím rutiny dokončení.

Omezení umístění: Rozhraní API se musí volat z komponenty IDE (úroveň > komponenty 100 000).

GetSymbolFilePath()

Vrátí cestu k souboru symbolu, který vrací objekt DkmModule.

Omezení umístění: Rozhraní API se musí volat z komponenty IDE (úroveň > komponenty 100 000).

GetSymbolFilePath(DkmWorkList, DkmCompletionRoutine<DkmGetSymbolFilePathAsyncResult>)

Vrátí cestu k souboru symbolu, který vrací objekt DkmModule.

Tato metoda přidá novou pracovní položku do zadaného pracovního seznamu a vrátí po připojení pracovní položky. Skutečné zpracování pracovní položky je asynchronní. Volající bude upozorněn, že žádost je dokončena prostřednictvím rutiny dokončení.

Omezení umístění: Rozhraní API se musí volat z komponenty IDE (úroveň > komponenty 100 000).

GetSymbolFileRawBytes()

GetSymbolFileRawBytes se používá k načtení nezpracovaných bajtů souboru symbolu ze vzdálené strany. To je v současné době podporováno pouze u dynamických přenosných souborů PDB. Tím se vrátí maximálně 10 MB.

Omezení umístění: Rozhraní API se musí volat z komponenty IDE (úroveň > komponenty 100 000).

Toto rozhraní API bylo zavedeno v sadě Visual Studio 14 Update 3 Micro Update (DkmApiVersion.VS14Update3MicroUpdate).

GetSymbolInterface(Guid)

GetSymbolInterface se používá k získání nezpracovaného rozhraní COM do úložiště symbolů. To je užitečné pro volající, kteří zjistí, že abstrakce symbolů prezentovaná ladicím programem je buď příliš omezující pro jejich potřeby, nebo jednoduše nežádoucí kvůli způsobu implementace jejich komponenty.

Omezení umístění: S výjimkou spravovaných symbolů musí být tato metoda volána ze stejného procesu, ve kterém poskytovatel symbolů otevřel soubor symbolů. U nativních souborů PDB to znamená, že rozhraní API se musí volat z procesu IDE. U spravovaných symbolů je na obou stranách vzdáleného připojení k dispozici podmnožina rozhraní API zprostředkovatele symbolů.

GetSymbolNameForRVA(DkmWorkList, UInt32, DkmCompletionRoutine<DkmGetSymbolNameForRVAAsyncResult>)

Získá název symbolu pro RVA.

Tato metoda přidá novou pracovní položku do zadaného pracovního seznamu a vrátí po připojení pracovní položky. Skutečné zpracování pracovní položky je asynchronní. Volající bude upozorněn, že žádost je dokončena prostřednictvím rutiny dokončení.

Omezení umístění: Rozhraní API se musí volat z komponenty IDE (úroveň > komponenty 100 000).

Toto rozhraní API bylo zavedeno v sadě Visual Studio 16 RTM (DkmApiVersion.VS16RTM).

GetSymbolNameForRVA(UInt32, UInt64)

Získá název symbolu pro RVA.

Omezení umístění: Rozhraní API se musí volat z komponenty IDE (úroveň > komponenty 100 000).

Toto rozhraní API bylo zavedeno v sadě Visual Studio 16 RTM (DkmApiVersion.VS16RTM).

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

Získá vlastní atribut na základě jeho názvu. Nezaměňovat s vlastními atributy metadat jsou tyto atributy uloženy v úložišti symbolů.

Tato metoda přidá novou pracovní položku do zadaného pracovního seznamu a vrátí po připojení pracovní položky. Skutečné zpracování pracovní položky je asynchronní. Volající bude upozorněn, že žádost je dokončena prostřednictvím rutiny dokončení.

GetTokenSymbolStoreAttribute(Int32, Boolean, String)

Získá vlastní atribut na základě jeho názvu. Nezaměňovat s vlastními atributy metadat jsou tyto atributy uloženy v úložišti symbolů.

IsValidAcceleratorTag(UInt32, UInt32)

Ověřte, jestli je značka ukazatele akcelerátoru platná.

Omezení umístění: Rozhraní API se musí volat z komponenty IDE (úroveň > komponenty 100 000).

OnModuleSymbolsReplaced()

Vytvořte událost ModuleSymbolsReplaced. Komponenty, které implementují rozhraní jímky událostí, obdrží oznámení o události. Ovládací prvek se vrátí, jakmile budou všechny komponenty upozorněny.

Toto rozhraní API bylo zavedeno v sadě Visual Studio 16 Update 5 (DkmApiVersion.VS16Update5).

RemoveDataItem<T>()

Odeberte z tohoto kontejneru instanci T. Obvykle není nutné volat tuto metodu, protože kontejner dat se automaticky vyprázdní při zavření objektu.

(Zděděno od DkmDataContainer)
SetDataItem<T>(DkmDataCreationDisposition, T)

Do kontejneru dat umístěte novou položku.

(Zděděno od DkmDataContainer)
SetPointerToHLSLRegister(UInt64, Int32, UInt32, UInt32, UInt32, UInt32, UInt32, UInt32, UInt32)

Nastaví C++ AMP adresu pro registr.

Omezení umístění: Rozhraní API se musí volat z komponenty IDE (úroveň > komponenty 100 000).

SymbolsHaveEmbeddedDocuments()

Zkontroluje, jestli symboly přidružené k modulu obsahují vložené dokumenty.

Omezení umístění: Rozhraní API se musí volat z komponenty IDE (úroveň > komponenty 100 000).

Toto rozhraní API bylo zavedeno v sadě Visual Studio 16 Update 5 (DkmApiVersion.VS16Update5).

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

Přeložte značku ukazatele akcelerátoru na atributy registru HLSL.

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

Přeložte značku ukazatele akcelerátoru na atributy registru HLSL pomocí relativní virtuální adresy.

Omezení umístění: Rozhraní API se musí volat z komponenty IDE (úroveň > komponenty 100 000).

UndecorateName(String, UInt32)

Zruší opravy názvu symbolu.

Omezení umístění: Rozhraní API se musí volat z komponenty IDE (úroveň > komponenty 100 000).

Platí pro