IDiaSession
Biedt een querycontext voor foutopsporingssymbolen.
Syntaxis
IDiaSession : IUnknown
Methoden
In de volgende tabel ziet u de methoden van IDiaSession
.
Methode | Beschrijving |
---|---|
IDiaSession::get_loadAddress |
Hiermee wordt het laadadres opgehaald voor het uitvoerbare bestand dat overeenkomt met de symbolen in dit symboolarchief. Dit is dezelfde waarde die is doorgegeven aan de methode put_loadAddress . |
IDiaSession::put_loadAddress |
Hiermee stelt u het laadadres in voor het uitvoerbare bestand dat overeenkomt met de symbolen in dit symboolarchief.
Opmerking: Het is belangrijk om deze methode aan te roepen wanneer u een IDiaSession -object krijgt en voordat u het object gaat gebruiken. |
IDiaSession::get_globalScope |
Haalt een verwijzing naar het globale bereik op. |
IDiaSession::getEnumTables |
Haalt een opsomming op voor alle tabellen in het symboolarchief. |
IDiaSession::getSymbolsByAddr |
Hiermee wordt een enumerator opgehaald voor alle benoemde symbolen op statische locaties. |
IDiaSession::findChildren |
Hiermee worden alle onderliggende elementen van een opgegeven bovenliggende id opgehaald die overeenkomen met de naam en het symbooltype. |
IDiaSession::findChildrenEx |
Haalt alle kinderen van een opgegeven bovenliggende id op die overeenkomen met de naam en het symbooltype, inclusief geoptimaliseerde lokale bevolking. |
IDiaSession::findChildrenExByAddr |
Haalt alle onderliggende elementen van een opgegeven bovenliggende id op die overeenkomen met de naam en het symbooltype, inclusief geoptimaliseerde lokale bevolking, die het dichtst bij een opgegeven adres staan of zich het dichtst bij een opgegeven adres bevindt. |
IDiaSession::findChildrenExByVA |
Hiermee worden alle onderliggende elementen van een opgegeven bovenliggende id opgehaald die overeenkomen met de naam en het symbooltype, inclusief geoptimaliseerde lokale bevolking, die het dichtst bij een opgegeven virtueel adres (VA) staat. |
IDiaSession::findChildrenExByRVA |
Haalt alle kinderen van een opgegeven bovenliggende id op die overeenkomen met de naam en het symbooltype, inclusief geoptimaliseerde lokale bevolking, die het dichtst bij een opgegeven relatieve virtuele adres (RVA) bevat of zich het dichtst bij bevindt. |
IDiaSession::findSymbolByAddr |
Hiermee wordt een opgegeven symbooltype opgehaald dat een opgegeven adres bevat of zich het dichtst bij een opgegeven adres bevindt. |
IDiaSession::findSymbolByRVA |
Hiermee haalt u een opgegeven symbooltype op dat een opgegeven relatief virtueel adres (RVA) bevat of het dichtst bij ligt. |
IDiaSession::findSymbolByVA |
Hiermee haalt u een opgegeven symbooltype op dat een opgegeven virtueel adres (VA) bevat of het dichtst bij zich heeft. |
IDiaSession::findSymbolByToken |
Hiermee wordt het symbool opgehaald dat een opgegeven metagegevenstoken bevat. |
IDiaSession::symsAreEquiv |
Hiermee wordt gecontroleerd of twee symbolen gelijkwaardig zijn. |
IDiaSession::symbolById |
Hiermee wordt een symbool opgehaald op basis van de unieke id. |
IDiaSession::findSymbolByRVAEx |
Hiermee wordt een opgegeven symbooltype opgehaald dat het dichtst bij een opgegeven relatief virtueel adres en een opgegeven offset bevat of zich het dichtst bij bevindt. |
IDiaSession::findSymbolByVAEx |
Hiermee wordt een opgegeven symbooltype opgehaald dat het dichtst bij een opgegeven virtueel adres en een opgegeven offset bevat of zich het dichtst bij bevindt. |
IDiaSession::findFile |
Hiermee wordt een bronbestand opgehaald op basis van compiland en naam. |
IDiaSession::findFileById |
Hiermee wordt een bronbestand opgehaald op basis van de bronbestands-id. |
IDiaSession::findLines |
Haalt regelnummers op binnen een opgegeven compiland- en bronbestands-id. |
IDiaSession::findLinesByAddr |
Haalt de regels op in een opgegeven compiland die een opgegeven adres bevatten. |
IDiaSession::findLinesByRVA |
Haalt de regels op in een opgegeven compiland die een opgegeven relatief virtueel adres bevatten. |
IDiaSession::findLinesByVA |
Hiermee vindt u de informatie over het regelnummer voor regels in een opgegeven adresbereik. |
IDiaSession::findLinesByLinenum |
Haalt de regels op in een opgegeven compiland op basis van bronbestand en regelnummer. |
IDiaSession::findInjectedSource |
Haalt een bron op die is geplaatst in het symboolarchief door kenmerkproviders of andere onderdelen van het compilatieproces. |
IDiaSession::getEnumDebugStreams |
Haalt een opgesomde reeks foutopsporingsgegevensstromen op. |
IDiaSession::findInlineFramesByAddr |
Hiermee haalt u een opsomming op waarmee een client alle inlineframes op een bepaald adres kan doorlopen. |
IDiaSession::findInlineFramesByRVA |
Haalt een opsomming op waarmee een client alle inlineframes op een opgegeven relatief virtueel adres (RVA) kan doorlopen. |
IDiaSession::findInlineFramesByVA |
Hiermee haalt u een opsomming op waarmee een client alle inlineframes op een opgegeven virtueel adres (VA) kan doorlopen. |
IDiaSession::findInlineeLines |
Haalt een opsomming op waarmee een client de regelnummergegevens kan doorlopen van alle functies die direct of indirect zijn inlined door het opgegeven bovenliggende symbool. |
IDiaSession::findInlineeLinesByAddr |
Haalt een opsomming op waarmee een client de regelnummergegevens kan doorlopen van alle functies die direct of indirect zijn inlined door het opgegeven bovenliggende symbool en zich in het opgegeven adresbereik bevinden. |
IDiaSession::findInlineeLinesByRVA |
Haalt een opsomming op waarmee een client de regelnummergegevens kan doorlopen van alle functies die direct of indirect zijn inlined door het opgegeven bovenliggende symbool en zich in het opgegeven relatieve virtuele adres (RVA) bevinden. |
IDiaSession::findInlineeLinesByVA |
Haalt een opsomming op waarmee een client de regelnummergegevens kan doorlopen van alle functies die direct of indirect zijn inlined door het opgegeven bovenliggende symbool en zich in het opgegeven virtuele adres (VA) bevinden. |
IDiaSession::findInlineeLinesByLinenum |
Haalt een opsomming op waarmee een client de regelnummergegevens kan doorlopen van alle functies die direct of indirect zijn inlined in het opgegeven bronbestand en regelnummer. |
IDiaSession::findInlineesByName |
Haalt een opsomming op waarmee een client de regelnummergegevens kan doorlopen van alle inlined functies die overeenkomen met een opgegeven naam. |
IDiaSession::findAcceleratorInlineesByLinenum |
Retourneert een opsomming van symbolen voor inlineframes die overeenkomen met de opgegeven bronlocatie. |
IDiaSession::findSymbolsForAcceleratorPointerTag |
Retourneert een opsomming van symbolen voor de variabele waaraan de opgegeven tagwaarde overeenkomt in de stubfunctie van de bovenliggende accelerator. |
IDiaSession::findSymbolsByRVAForAcceleratorPointerTag |
Op basis van een bijbehorende tagwaarde retourneert deze methode een opsomming van symbolen die zijn opgenomen in een opgegeven bovenliggende stub-functie van accelerator op een opgegeven relatief virtueel adres. |
IDiaSession::findAcceleratorInlineesByName |
Retourneert een opsomming van symbolen voor inlineframes die overeenkomen met de opgegeven inlinefunctienaam. |
IDiaSession::addressForVA |
Retourneert het equivalente adres voor het opgegeven virtuele adres (VA). |
IDiaSession::addressForRVA |
Retourneert het equivalente adres voor het opgegeven relatieve virtuele adres (RVA). |
IDiaSession::findILOffsetsByAddr |
Haalt een opsomming op waarmee een client de MSIL-offsets binnen een opgegeven adresbereik kan doorlopen. |
IDiaSession::findILOffsetsByRVA |
Haalt een opsomming op waarmee een client de MSIL-offsets binnen een opgegeven relatief virtueel adresbereik (RVA) kan doorlopen. |
IDiaSession::findILOffsetsByVA |
Haalt een opsomming op waarmee een client de MSIL-offsets binnen een opgegeven VA-bereik (virtual address) kan doorlopen. |
IDiaSession::findInputAssemblyFiles |
Haalt een opsomming op waarmee een client de .NET Native invoerassemblybestanden kan doorlopen. |
IDiaSession::findInputAssembly |
Hiermee wordt een systeemeigen .NET-invoerassemblybestand opgehaald per index. |
IDiaSession::findInputAssemblyById |
Haalt het .NET Native invoerassemblybestand op op unieke id. |
IDiaSession::getFuncMDTokenMapSize |
Haalt de grootte, in bytes, van de tokentoewijzing van de .NET Native metagegevensfunctie op. |
IDiaSession::getFuncMDTokenMap |
Haalt de inhoud van het tokenoverzicht van de .NET Native metagegevensfunctie op. |
IDiaSession::getTypeMDTokenMapSize |
Hiermee haalt u de grootte, in bytes, van de tokentoewijzing van het type .NET Native metagegevens op. |
IDiaSession::getTypeMDTokenMap |
Hiermee wordt de inhoud van de tokentoewijzing van het type .NET Native metagegevens opgehaald. |
IDiaSession::getNumberOfFunctionFragments_VA |
Hiermee haalt u het aantal niet-aaneengesloten fragmenten voor de functie op het opgegeven virtuele adres (VA) op. |
IDiaSession::getNumberOfFunctionFragments_RVA |
Hiermee wordt het aantal discntiguous fragmenten voor de functie opgehaald op het opgegeven relatieve virtuele adres (RVA). |
IDiaSession::getFunctionFragments_VA |
Haalt de adressen en lengten van discontiguous fragmenten voor de functie op het opgegeven virtuele adres (VA) op. |
IDiaSession::getFunctionFragments_RVA |
Haalt de adressen en lengten van discueuze fragmenten voor de functie op het opgegeven relatieve virtuele adres (RVA) op. |
IDiaSession::getExports |
Hiermee haalt u een enumerator op voor alle geƫxporteerde symbolen. |
IDiaSession::getHeapAllocationSites |
Hiermee haalt u een enumerator op voor alle SymTagHeapAllocationSite symbolen. |
IDiaSession::findInputAssemblyFile |
Haalt het .NET Native invoerassemblybestand op dat het bovenliggende symbool is. |
Opmerkingen
Het is belangrijk om de methode IDiaSession::put_loadAddress
aan te roepen nadat u het IDiaSession
-object hebt gemaakt, en de waarde die aan de methode put_loadAddress
is doorgegeven, moet niet nul zijn, zodat alle eigenschappen van virtuele adressen (VA) van symbolen toegankelijk zijn. Het laadadres is afkomstig van het programma dat het uitvoerbare bestand heeft geladen dat wordt opgespoord. U kunt bijvoorbeeld de Win32-functie aanroepen GetModuleInformation
om het laadadres voor het uitvoerbare bestand op te halen, met een ingang naar het uitvoerbare bestand.
Voorbeeld
In dit voorbeeld ziet u hoe u de IDiaSession
-interface kunt verkrijgen als onderdeel van een algemene initialisatie van de DIA-SDK (Debug Interface Access).
CComPtr<IDiaDataSource> pSource;
ComPtr<IDiaSession> psession;
void InitializeDIA(const char *szFilename)
{
HRESULT hr = CoCreateInstance( CLSID_DiaSource,
NULL,
CLSCTX_INPROC_SERVER,
__uuidof( IDiaDataSource ),
(void **) &pSource);
if (FAILED(hr))
{
Fatal("Could not CoCreate CLSID_DiaSource. Register msdia80.dll." );
}
wchar_t wszFilename[ _MAX_PATH ];
mbstowcs( wszFilename,
szFilename,
sizeof( wszFilename )/sizeof( wszFilename[0] ) );
if ( FAILED( pSource->loadDataFromPdb( wszFilename ) ) )
{
if ( FAILED( pSource->loadDataForExe( wszFilename, NULL, NULL ) ) )
{
Fatal( "loadDataFromPdb/Exe" );
}
}
if ( FAILED( pSource->openSession( &psession ) ) )
{
Fatal( "openSession" );
}
}
Eisen
Koptekst: Dia2.h
Bibliotheek: diaguids.lib
DLL: msdia80.dll