IDiaSession
Poskytuje kontext dotazu pro symboly ladění.
Syntaxe
IDiaSession : IUnknown
Metody
Následující tabulka ukazuje metody IDiaSession
.
metoda | Popis |
---|---|
IDiaSession::get_loadAddress |
Načte adresu načtení spustitelného souboru, který odpovídá symbolům v tomto úložišti symbolů. Jedná se o stejnou hodnotu, která byla předána metodě put_loadAddress . |
IDiaSession::put_loadAddress |
Nastaví adresu načtení spustitelného souboru, který odpovídá symbolům v tomto úložišti symbolů. Poznámka: Je důležité volat tuto metodu při získání objektu IDiaSession a před zahájením používání objektu. |
IDiaSession::get_globalScope |
Načte odkaz na globální obor. |
IDiaSession::getEnumTables |
Načte enumerátor pro všechny tabulky obsažené v úložišti symbolů. |
IDiaSession::getSymbolsByAddr |
Načte enumerátor pro všechny pojmenované symboly ve statických umístěních. |
IDiaSession::findChildren |
Načte všechny podřízené položky zadaného nadřazeného identifikátoru, které odpovídají názvu a typu symbolu. |
IDiaSession::findChildrenEx |
Načte všechny podřízené položky zadaného nadřazeného identifikátoru, které odpovídají názvu a typu symbolu, včetně optimalizovaných místních hodnot. |
IDiaSession::findChildrenExByAddr |
Načte všechny podřízené položky zadaného nadřazeného identifikátoru, které odpovídají typu názvu a symbolu, včetně optimalizovaných místních hodnot, které obsahují nebo jsou nejblíže zadané adrese. |
IDiaSession::findChildrenExByVA |
Načte všechny podřízené položky zadaného nadřazeného identifikátoru, které odpovídají názvu a typu symbolu, včetně optimalizovaných místních hodnot, které obsahují nebo jsou nejblíže zadané virtuální adrese (VA). |
IDiaSession::findChildrenExByRVA |
Načte všechny podřízené položky zadaného nadřazeného identifikátoru, které odpovídají názvu a typu symbolu, včetně optimalizovaných místních hodnot, které obsahují nebo jsou nejblíže zadané relativní virtuální adrese (RVA). |
IDiaSession::findSymbolByAddr |
Načte zadaný typ symbolu, který obsahuje zadanou adresu nebo je k ho nejblíže. |
IDiaSession::findSymbolByRVA |
Načte zadaný typ symbolu, který obsahuje zadanou relativní virtuální adresu (RVA) nebo je k ho nejblíže. |
IDiaSession::findSymbolByVA |
Načte zadaný typ symbolu, který obsahuje zadanou virtuální adresu (VA) nebo je k ho nejblíže. |
IDiaSession::findSymbolByToken |
Načte symbol, který obsahuje zadaný token metadat. |
IDiaSession::symsAreEquiv |
Zkontroluje, jestli jsou ekvivalentní dva symboly. |
IDiaSession::symbolById |
Načte symbol podle jeho jedinečného identifikátoru. |
IDiaSession::findSymbolByRVAEx |
Načte zadaný typ symbolu, který obsahuje nebo je nejblíže zadané relativní virtuální adrese a posunu. |
IDiaSession::findSymbolByVAEx |
Načte zadaný typ symbolu, který obsahuje nebo je nejblíže zadané virtuální adrese a posunu. |
IDiaSession::findFile |
Načte zdrojový soubor podle compilandu a názvu. |
IDiaSession::findFileById |
Načte zdrojový soubor podle identifikátoru zdrojového souboru. |
IDiaSession::findLines |
Načte čísla řádků v zadaném identifikátoru compilandu a zdrojového souboru. |
IDiaSession::findLinesByAddr |
Načte řádky v zadaném compilandu, které obsahují zadanou adresu. |
IDiaSession::findLinesByRVA |
Načte řádky v zadaném compilandu, které obsahují zadanou relativní virtuální adresu. |
IDiaSession::findLinesByVA |
Vyhledá informace o čísle řádku pro řádky obsažené v zadaném rozsahu adres. |
IDiaSession::findLinesByLinenum |
Načte řádky v zadaném compilandu podle zdrojového souboru a čísla řádku. |
IDiaSession::findInjectedSource |
Načte zdroj, který byl umístěn do úložiště symbolů zprostředkovateli atributů nebo jinými komponentami procesu kompilace. |
IDiaSession::getEnumDebugStreams |
Načte výčtovou sekvenci datových proudů ladění. |
IDiaSession::findInlineFramesByAddr |
Načte výčet, který umožňuje klientovi iterovat všechny vložené rámce na dané adrese. |
IDiaSession::findInlineFramesByRVA |
Načte výčet, který umožňuje klientovi iterovat všechny vložené rámce na zadané relativní virtuální adrese (RVA). |
IDiaSession::findInlineFramesByVA |
Načte výčet, který umožňuje klientovi iterovat všechny vložené rámce na zadané virtuální adrese (VA). |
IDiaSession::findInlineeLines |
Načte výčet, který klientovi umožňuje iterovat informace o čísle řádku všech funkcí, které jsou vloženy přímo nebo nepřímo zadaným nadřazeným symbolem. |
IDiaSession::findInlineeLinesByAddr |
Načte výčet, který umožňuje klientovi iterovat informace o čísle řádku všech funkcí, které jsou vloženy přímo nebo nepřímo zadaným nadřazeným symbolem a jsou obsaženy v zadaném rozsahu adres. |
IDiaSession::findInlineeLinesByRVA |
Načte výčet, který umožňuje klientovi iterovat informace o čísle řádku všech funkcí, které jsou vloženy přímo nebo nepřímo zadaným nadřazeným symbolem a jsou obsaženy v zadané relativní virtuální adrese (RVA). |
IDiaSession::findInlineeLinesByVA |
Načte výčet, který umožňuje klientovi iterovat informace o čísle řádku všech funkcí, které jsou vloženy přímo nebo nepřímo zadaným nadřazeným symbolem a jsou obsaženy v zadané virtuální adrese (VA). |
IDiaSession::findInlineeLinesByLinenum |
Načte výčet, který umožňuje klientovi iterovat informace o čísle řádku všech funkcí, které jsou vloženy přímo nebo nepřímo, v zadaném zdrojovém souboru a čísle řádku. |
IDiaSession::findInlineesByName |
Načte výčet, který umožňuje klientovi iterovat informace o čísle řádku všech vložených funkcí, které odpovídají zadanému názvu. |
IDiaSession::findAcceleratorInlineesByLinenum |
Vrátí výčet symbolů pro vložené rámce, které odpovídají zadanému zdrojovému umístění. |
IDiaSession::findSymbolsForAcceleratorPointerTag |
Vrátí výčet symbolů pro proměnnou, kterou zadaná hodnota značky odpovídá ve funkci zástupných procedur nadřazeného akcelerátoru. |
IDiaSession::findSymbolsByRVAForAcceleratorPointerTag |
Vzhledem k odpovídající hodnotě značky tato metoda vrátí výčet symbolů obsažených v zadané nadřazené funkci zástupných procedur akcelerátoru na zadané relativní virtuální adrese. |
IDiaSession::findAcceleratorInlineesByName |
Vrátí výčet symbolů pro vložené rámce odpovídající zadanému názvu vložené funkce. |
IDiaSession::addressForVA |
Vrátí ekvivalentní adresu pro zadanou virtuální adresu (VA). |
IDiaSession::addressForRVA |
Vrátí ekvivalentní adresu pro zadanou relativní virtuální adresu (RVA). |
IDiaSession::findILOffsetsByAddr |
Načte výčet, který umožňuje klientovi iterovat přes posuny jazyka MSIL v zadaném rozsahu adres. |
IDiaSession::findILOffsetsByRVA |
Načte výčet, který umožňuje klientovi iterovat přes posuny jazyka MSIL v zadaném rozsahu relativní virtuální adresy (RVA). |
IDiaSession::findILOffsetsByVA |
Načte výčet, který umožňuje klientovi iterovat přes posuny jazyka MSIL v zadaném rozsahu virtuálních adres (VA). |
IDiaSession::findInputAssemblyFiles |
Načte výčet, který umožňuje klientovi iterovat prostřednictvím vstupních souborů sestavení .NET Native. |
IDiaSession::findInputAssembly |
Načte vstupní soubor sestavení .NET Native podle indexu. |
IDiaSession::findInputAssemblyById |
Načte vstupní soubor sestavení .NET Native jedinečným identifikátorem. |
IDiaSession::getFuncMDTokenMapSize |
Načte velikost v bajtech mapy tokenů funkce metadat .NET Native. |
IDiaSession::getFuncMDTokenMap |
Načte obsah mapy tokenů funkce .NET Native. |
IDiaSession::getTypeMDTokenMapSize |
Načte velikost mapování tokenů typu metadat .NET Native v bajtech. |
IDiaSession::getTypeMDTokenMap |
Načte obsah mapování tokenů typu metadat .NET Native. |
IDiaSession::getNumberOfFunctionFragments_VA |
Načte počet nesouvislých fragmentů funkce na zadané virtuální adrese (VA). |
IDiaSession::getNumberOfFunctionFragments_RVA |
Načte počet nesouvislých fragmentů funkce na zadané relativní virtuální adrese (RVA). |
IDiaSession::getFunctionFragments_VA |
Načte adresy a délky nesouvislých fragmentů funkce na zadané virtuální adrese (VA). |
IDiaSession::getFunctionFragments_RVA |
Načte adresy a délky nesouvislých fragmentů funkce na zadané relativní virtuální adrese (RVA). |
IDiaSession::getExports |
Načte enumerátor pro všechny exportované symboly. |
IDiaSession::getHeapAllocationSites |
Načte enumerátor pro všechny SymTagHeapAllocationSite symboly. |
IDiaSession::findInputAssemblyFile |
Načte vstupní soubor sestavení .NET Native, který je nadřazený zadaný symbol. |
Poznámky
Je důležité volat metodu IDiaSession::put_loadAddress
po vytvoření objektu IDiaSession
a hodnota předaná put_loadAddress
metodě musí být nenulová, aby všechny vlastnosti virtuální adresy (VA) symbolů byly přístupné. Načítá adresa pochází z libovolného programu načteného spustitelného souboru, který je laděný. Můžete například volat funkci GetModuleInformation
Win32, která načte adresu načtení spustitelného souboru vzhledem ke popisovači spustitelného souboru.
Příklad
Tento příklad ukazuje, jak získat IDiaSession
rozhraní jako součást obecné inicializace sady SDK pro přístup k rozhraní ladění (DIA).
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" );
}
}
Požadavky
Hlavička: Dia2.h
Knihovna: diaguids.lib
DLL: msdia80.dll