Megosztás:


IDiaSession

Lekérdezési környezetet biztosít a hibakeresési szimbólumokhoz.

Szintaxis

IDiaSession : IUnknown

Módszerek

Az alábbi táblázat a IDiaSessionmetódusait mutatja be.

Módszer Leírás
IDiaSession::get_loadAddress Lekéri a végrehajtható fájl betöltési címét, amely megfelel a szimbólumtároló szimbólumainak. Ez ugyanaz az érték, amelyet a put_loadAddress metódusnak ad át.
IDiaSession::put_loadAddress Beállítja a végrehajtható fájl betöltési címét, amely megfelel a szimbólumtároló szimbólumainak. Megjegyzés: Fontos ezt a metódust meghívni, amikor egy IDiaSession objektumot kap, és mielőtt elkezdené használni az objektumot.
IDiaSession::get_globalScope A globális hatókörre mutató hivatkozást kér le.
IDiaSession::getEnumTables Lekéri a szimbólumtárolóban található összes tábla enumerátorát.
IDiaSession::getSymbolsByAddr Lekéri az összes elnevezett szimbólum enumerátorát statikus helyeken.
IDiaSession::findChildren Egy megadott szülőazonosító összes gyermekét lekéri, amely megfelel a névnek és a szimbólumtípusnak.
IDiaSession::findChildrenEx Lekéri egy megadott szülőazonosító összes gyermekét, amely megfelel a névnek és a szimbólumtípusnak, beleértve az optimalizált helyieket is.
IDiaSession::findChildrenExByAddr Lekéri egy megadott szülőazonosító összes gyermekét, amely megfelel a névnek és a szimbólumtípusnak, beleértve az optimalizált helyieket is, amelyek egy megadott címet tartalmaznak vagy a legközelebbiek.
IDiaSession::findChildrenExByVA Lekéri egy megadott szülőazonosító összes gyermekét, amely megfelel a névnek és a szimbólumtípusnak, beleértve az optimalizált helyieket is, amelyek egy megadott virtuális címet (VA) tartalmaznak vagy a legközelebbiek.
IDiaSession::findChildrenExByRVA Lekéri egy megadott szülőazonosító összes gyermekét, amely megfelel a névnek és a szimbólumtípusnak, beleértve az optimalizált helyieket is, amelyek egy megadott relatív virtuális címet (RVA) tartalmaznak vagy a legközelebbiek.
IDiaSession::findSymbolByAddr Egy megadott címet tartalmazó vagy ahhoz legközelebbi szimbólumtípust kér le.
IDiaSession::findSymbolByRVA Egy megadott szimbólumtípust kér le, amely egy megadott relatív virtuális címet (RVA) tartalmaz vagy a legközelebbi.
IDiaSession::findSymbolByVA Egy megadott szimbólumtípust kér le, amely egy megadott virtuális címet (VA) tartalmaz vagy a legközelebbi.
IDiaSession::findSymbolByToken Lekéri a megadott metaadat-jogkivonatot tartalmazó szimbólumot.
IDiaSession::symsAreEquiv Ellenőrzi, hogy két szimbólum egyenértékű-e.
IDiaSession::symbolById Egy szimbólumot az egyedi azonosítójával kér le.
IDiaSession::findSymbolByRVAEx Egy megadott szimbólumtípust kér le, amely egy megadott relatív virtuális címet és eltolást tartalmaz vagy a legközelebbi.
IDiaSession::findSymbolByVAEx Egy megadott szimbólumtípust kér le, amely egy megadott virtuális címet és eltolást tartalmaz vagy a legközelebbi.
IDiaSession::findFile A forrásfájlt compiland és name alapján kéri le.
IDiaSession::findFileById Forrásfájl lekérése forrásfájl-azonosító alapján.
IDiaSession::findLines Egy megadott compiland- és forrásfájl-azonosítón belül beolvassa a sorszámokat.
IDiaSession::findLinesByAddr Lekéri egy megadott címmel rendelkező megadott compiland sorait.
IDiaSession::findLinesByRVA Egy megadott relatív virtuális címet tartalmazó sorok lekérése egy megadott compilandban.
IDiaSession::findLinesByVA Megkeresi a megadott címtartományban lévő sorok sorszámadatait.
IDiaSession::findLinesByLinenum Egy megadott compiland sorait kéri le forrásfájl és sorszám alapján.
IDiaSession::findInjectedSource Lekéri az attribútumszolgáltatók vagy a fordítási folyamat más összetevői által a szimbólumtárolóba helyezett forrást.
IDiaSession::getEnumDebugStreams Lekéri az adatfolyamok hibakeresésének enumerált sorozatát.
IDiaSession::findInlineFramesByAddr Lekéri az enumerálást, amely lehetővé teszi az ügyfél számára, hogy egy adott cím összes beágyazott keretén végig haladjon.
IDiaSession::findInlineFramesByRVA Lekéri az enumerálást, amely lehetővé teszi az ügyfél számára, hogy egy adott relatív virtuális cím (RVA) összes beágyazott képkockáján át haladjon.
IDiaSession::findInlineFramesByVA Lekéri az enumerálást, amely lehetővé teszi az ügyfél számára, hogy egy adott virtuális cím (VA) összes beágyazott képkockáján végig haladjon.
IDiaSession::findInlineeLines Lekéri az enumerálást, amely lehetővé teszi, hogy az ügyfél a megadott szülőszimbólummal közvetlenül vagy közvetve beágyazott összes függvény sorszámadatain keresztül iterálja azokat.
IDiaSession::findInlineeLinesByAddr Lekéri az enumerálást, amely lehetővé teszi az ügyfél számára, hogy a megadott szülőszimbólummal közvetlenül vagy közvetve beágyazott összes függvény sorszámadatain keresztül iterálja azokat, amelyek a megadott címtartományban találhatók.
IDiaSession::findInlineeLinesByRVA Lekéri az enumerálást, amely lehetővé teszi az ügyfél számára, hogy a megadott szülőszimbólummal közvetlenül vagy közvetve beágyazott összes függvény sorszámadatain keresztül iterálja azokat, amelyek a megadott relatív virtuális címben (RVA) vannak tárolva.
IDiaSession::findInlineeLinesByVA Lekéri az enumerálást, amely lehetővé teszi az ügyfél számára, hogy a megadott szülőszimbólummal közvetlenül vagy közvetve beágyazott összes függvény sorszámadatain keresztül iterálja azokat, amelyek a megadott virtuális címben (VA) vannak tárolva.
IDiaSession::findInlineeLinesByLinenum Lekéri az enumerálást, amely lehetővé teszi az ügyfél számára, hogy a megadott forrásfájlban és sorszámban közvetlenül vagy közvetve beágyazott összes függvény sorszámadatain keresztül iterálja azokat.
IDiaSession::findInlineesByName Lekéri az enumerálást, amely lehetővé teszi az ügyfél számára, hogy a megadott névnek megfelelő összes beágyazott függvény sorszámadatain át haladjon.
IDiaSession::findAcceleratorInlineesByLinenum A megadott forráshelynek megfelelő beágyazott keretek szimbólumainak számbavételét adja vissza.
IDiaSession::findSymbolsForAcceleratorPointerTag A szülőgyorsító csonkfüggvényben megadott címkeértéknek megfelelő változó szimbólumainak számbavételét adja vissza.
IDiaSession::findSymbolsByRVAForAcceleratorPointerTag A megfelelő címkeérték alapján ez a metódus egy megadott szülőgyorsító-csonkfüggvényben található szimbólumok számbavételét adja vissza egy megadott relatív virtuális címben.
IDiaSession::findAcceleratorInlineesByName A megadott beágyazott függvénynévnek megfelelő beágyazott keretek szimbólumainak számbavételét adja vissza.
IDiaSession::addressForVA A megadott virtuális cím (VA) egyenértékű címét adja vissza.
IDiaSession::addressForRVA A megadott relatív virtuális cím (RVA) egyenértékű címét adja vissza.
IDiaSession::findILOffsetsByAddr Lekéri az enumerálást, amely lehetővé teszi az ügyfél számára, hogy egy megadott címtartományon belüli MSIL-eltolásokon keresztül iteráljon.
IDiaSession::findILOffsetsByRVA Lekéri az enumerálást, amely lehetővé teszi az ügyfél számára, hogy egy megadott relatív virtuális címtartományon (RVA) belül az MSIL-eltolásokon keresztül iteráljon.
IDiaSession::findILOffsetsByVA Lekéri az enumerálást, amely lehetővé teszi az ügyfél számára, hogy egy megadott virtuális címtartományon (VA) belüli MSIL-eltolásokon keresztül iteráljon.
IDiaSession::findInputAssemblyFiles Lekéri az enumerálást, amely lehetővé teszi az ügyfél számára a .NET natív bemeneti szerelvényfájljainak iterálását.
IDiaSession::findInputAssembly Egy .NET natív bemeneti szerelvényfájlt kér le index alapján.
IDiaSession::findInputAssemblyById A .NET natív bemeneti szerelvényfájlt kéri le egyedi azonosító alapján.
IDiaSession::getFuncMDTokenMapSize Bájtban lekéri a .NET natív metaadatfüggvény-jogkivonat-leképezésének méretét.
IDiaSession::getFuncMDTokenMap Lekéri a .NET natív metaadatfüggvény-jogkivonat-leképezésének tartalmát.
IDiaSession::getTypeMDTokenMapSize Bájtban lekéri a .NET natív metaadattípus-jogkivonat-leképezésének méretét.
IDiaSession::getTypeMDTokenMap Lekéri a .NET natív metaadattípus-jogkivonat-leképezésének tartalmát.
IDiaSession::getNumberOfFunctionFragments_VA Lekéri a függvény különálló töredékeinek számát a megadott virtuális címen (VA).
IDiaSession::getNumberOfFunctionFragments_RVA Lekéri a függvény nem egyértelmű töredékeinek számát a megadott relatív virtuális címen (RVA).
IDiaSession::getFunctionFragments_VA Lekéri a függvény különálló töredékeinek címét és hosszát a megadott virtuális címen (VA).
IDiaSession::getFunctionFragments_RVA Lekéri a függvény különálló töredékeinek címét és hosszát a megadott relatív virtuális címen (RVA).
IDiaSession::getExports Lekéri az összes exportált szimbólum enumerátorát.
IDiaSession::getHeapAllocationSites Lekéri az összes SymTagHeapAllocationSite szimbólum enumerátorát.
IDiaSession::findInputAssemblyFile Lekéri a megadott szimbólum szülőjének számító .NET natív bemeneti szerelvényfájlt.

Megjegyzések

A IDiaSession objektum létrehozása után fontos meghívni a IDiaSession::put_loadAddress metódust – és a put_loadAddress metódusnak átadott értéknek nem nullának kell lennie –, hogy a szimbólumok bármely virtuális címtulajdonsága elérhető legyen. A betöltési cím attól a programtól származik, amely betöltötte a hibakeresés alatt álló végrehajtható fájlt. Meghívhatja például a Win32 függvényt GetModuleInformation, hogy lekérje a végrehajtható fájl terhelési címét egy leíróval.

Példa

Ez a példa bemutatja, hogyan szerezheti be a IDiaSession felületet a Hibakeresési felületi hozzáférés (DIA) SDK általános inicializálásának részeként.

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" );
    }
}

Követelmények

Fejléc: Dia2.h

Könyvtár: diaguids.lib

DLL: msdia80.dll

Lásd még: