IDiaSymbol
Popisuje vlastnosti instance symbolu.
Syntaxe
IDiaSymbol : IUnknown
Metody v abecedním pořadí
Následující tabulka ukazuje metody IDiaSymbol
.
Poznámka:
Symboly vrátí smysluplná data pouze pro některé z těchto metod v závislosti na typu symbolu. Pokud metoda vrátí S_OK
, pak tato metoda vrátila smysluplná data.
metoda | Popis |
---|---|
IDiaSymbol::findChildren | Načte všechny podřízené položky symbolu. |
IDiaSymbol::findChildrenEx | Načte podřízené položky symbolu. Tato metoda je rozšířená verze IDiaSymbol::findChildren. |
IDiaSymbol::findChildrenExByAddr | Načte podřízené položky symbolu, které jsou platné na zadané adrese. |
IDiaSymbol::findChildrenExByRVA | Načte podřízené položky symbolu, které jsou platné na zadané relativní virtuální adrese (RVA). |
IDiaSymbol::findChildrenExByVA | Načte podřízené položky symbolu, které jsou platné na zadané virtuální adrese. |
IDiaSymbol::findInlineFramesByAddr | Načte výčet, který umožňuje klientovi iterovat všechny vložené rámce na dané adrese. |
IDiaSymbol::findInlineFramesByRVA | Načte výčet, který umožňuje klientovi iterovat všechny vložené rámce na zadané relativní virtuální adrese (RVA). |
IDiaSymbol::findInlineFramesByVA | Načte výčet, který umožňuje klientovi iterovat všechny vložené rámce na zadané virtuální adrese (VA). |
IDiaSymbol::findInlineeLines | 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 tomto symbolu. |
IDiaSymbol::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, v tomto symbolu v zadaném rozsahu adres. |
IDiaSymbol::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, v tomto symbolu v rámci zadané relativní virtuální adresy (RVA). |
IDiaSymbol::findInlineeLinesByVA | 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, v tomto symbolu v zadané virtuální adrese (VA). |
IDiaSymbol::findSymbolsByRVAForAcceleratorPointerTag | Vzhledem k odpovídající hodnotě značky vrátí tato metoda výčet symbolů, které jsou obsaženy v této funkci zástupných procedur na zadané relativní virtuální adrese. |
IDiaSymbol::findSymbolsForAcceleratorPointerTag | Vrátí počet značek ukazatelů akcelerátoru ve funkci zástupných procedur C++ AMP. |
IDiaSymbol::get_acceleratorPointerTags | Vrátí všechny hodnoty značek ukazatele akcelerátoru, které odpovídají funkci zástupných procedur akcelerátoru C++ AMP. |
IDiaSymbol::get_access | Načte modifikátor přístupu člena třídy. |
IDiaSymbol::get_addressOffset | Načte posun části umístění adresy. |
IDiaSymbol::get_addressSection | Načte část oddílu umístění adresy. |
IDiaSymbol::get_addressTaken | Načte příznak označující, jestli na tuto adresu odkazuje jiný symbol. |
IDiaSymbol::get_age | Načte věkovou hodnotu databáze programu. |
IDiaSymbol::get_arrayIndexType | Načte identifikátor symbolu typu indexu pole. |
IDiaSymbol::get_arrayIndexTypeId | Načte identifikátor typu indexu pole symbolu. |
IDiaSymbol::get_backEndMajor | Načte číslo hlavní verze back-endu. |
IDiaSymbol::get_backEndMinor | Načte číslo podverze back-endu. |
IDiaSymbol::get_backEndBuild | Načte číslo sestavení back-endu. |
IDiaSymbol::get_baseDataOffset | Načte posun základních dat. |
IDiaSymbol::get_baseDataSlot | Načte základní datový slot. |
IDiaSymbol::get_baseSymbol | Načte symbol, ze kterého je ukazatel založen. |
IDiaSymbol::get_baseSymbolId | Načte ID symbolu, ze kterého je ukazatel založen. |
IDiaSymbol::get_baseType | Načte značku typu jednoduchého typu. |
IDiaSymbol::get_bitPosition | Načte pozici bitu umístění. |
IDiaSymbol::get_builtInKind | Načte předdefinovaný typ HLSL. |
IDiaSymbol::get_callingConvention | Vrátí indikátor konvence volání metody. |
IDiaSymbol::get_classParent | Načte odkaz na nadřazenou třídu symbolu. |
IDiaSymbol::get_classParentId | Načte nadřazený identifikátor třídy symbolu. |
IDiaSymbol::get_code | Načte příznak označující, jestli symbol odkazuje na adresu kódu. |
IDiaSymbol::get_compilerGenerated | Načte příznak označující, jestli byl symbol generován kompilátorem. |
IDiaSymbol::get_compilerName | Načte název kompilátoru použitého k vytvoření Compilandu. |
IDiaSymbol::get_constructor | Načte příznak označující, jestli má uživatelem definovaný datový typ konstruktor. |
IDiaSymbol::get_container | Načte obsahující symbol tohoto symbolu. |
IDiaSymbol::get_constType | Načte příznak označující, jestli je uživatelem definovaný datový typ konstantní. |
IDiaSymbol::get_count | Načte počet položek v seznamu nebo poli. |
IDiaSymbol::get_countLiveRanges | Načte počet platných rozsahů adres přidružených k místnímu symbolu. |
IDiaSymbol::get_customCallingConvention | Načte příznak označující, jestli funkce používá vlastní konvenci volání. |
IDiaSymbol::get_dataBytes | Načte bajty dat symbolu OEM. |
IDiaSymbol::get_dataKind | Načte klasifikaci proměnné symbolu dat. |
IDiaSymbol::get_editAndContinueEnabled | Načte příznak popisující funkce Upravit a pokračovat zkompilovaného programu nebo lekce. |
IDiaSymbol::get_farReturn | Načte příznak označující, jestli funkce používá dalekosáhlý návrat. |
IDiaSymbol::get_frontEndMajor | Načte číslo hlavní verze front-endu. |
IDiaSymbol::get_frontEndMinor | Načte číslo podverze front-endu. |
IDiaSymbol::get_frontEndBuild | Načte číslo front-endového sestavení. |
IDiaSymbol::get_function | Načte příznak označující, jestli veřejný symbol odkazuje na funkci. |
IDiaSymbol::get_guid | Načte identifikátor GUID symbolu. |
IDiaSymbol::get_hasAlloca | Načte příznak označující, zda funkce obsahuje volání alloca . |
IDiaSymbol::get_hasAssignmentOperator | Načte příznak označující, jestli má definovaný datový typ uživatelem definované operátory přiřazení. |
IDiaSymbol::get_hasCastOperator | Načte příznak označující, jestli má definovaný datový typ uživatelem definované operátory přetypování. |
IDiaSymbol::get_hasDebugInfo | Načte příznak označující, jestli compiland obsahuje nějaké informace o ladění. |
IDiaSymbol::get_hasEH | Načte příznak označující, jestli má funkce obslužnou rutinu výjimky ve stylu C++. |
IDiaSymbol::get_hasEHa | Načte příznak označující, jestli má funkce asynchronní obslužnou rutinu výjimky. |
IDiaSymbol::get_hasInlAsm | Načte příznak označující, zda má funkce vložené sestavení. |
IDiaSymbol::get_hasLongJump | Načte příznak označující, jestli funkce obsahuje příkaz longjmp (součást zpracování výjimek ve stylu jazyka C). |
IDiaSymbol::get_hasManagedCode | Načte příznak označující, jestli modul obsahuje spravovaný kód. |
IDiaSymbol::get_hasNestedTypes | Načte příznak označující, jestli má uživatelem definovaný datový typ vnořené definice typu. |
IDiaSymbol::get_hasSecurityChecks | Načte příznak označující, jestli má funkce nebo compiland zkompilované kontroly zabezpečení (prostřednictvím přepínače kompilátoru /GS (kontrola zabezpečení vyrovnávací paměti). |
IDiaSymbol::get_hasSEH | Načte příznak označující, jestli má funkce strukturované zpracování výjimek ve stylu Win32. |
IDiaSymbol::get_hasSetJump | Načte příznak označující, jestli funkce obsahuje příkaz setjmp. |
IDiaSymbol::get_indirectVirtualBaseClass | Načte příznak označující, jestli je uživatelem definovaný datový typ nepřímá virtuální základní třída. |
IDiaSymbol::get_InlSpec | Načte příznak označující, jestli byla funkce označena vloženým atributem. |
IDiaSymbol::get_interruptReturn | Načte příznak označující, jestli má funkce návrat z instrukce přerušení. |
IDiaSymbol::get_intro | Načte příznak označující, jestli je funkce virtuální funkcí základní třídy. |
IDiaSymbol::get_isAcceleratorGroupSharedLocal | Načte příznak, který označuje, jestli symbol odpovídá skupině sdílené místní proměnné v kódu zkompilovanému pro akcelerátor C++ AMP. |
IDiaSymbol::get_isAcceleratorPointerTagLiveRange | Načte příznak, který označuje, zda symbol odpovídá symbolu rozsahu definic pro komponentu značky proměnné ukazatele v kódu zkompilovaném pro akcelerátor C++ AMP. Symbol rozsahu definic je umístění proměnné pro rozsah adres. |
IDiaSymbol::get_isAcceleratorStubFunction | Určuje, zda symbol odpovídá symbolu funkce nejvyšší úrovně pro shader zkompilovaný pro akcelerátor, který odpovídá parallel_for_each volání. |
IDiaSymbol::get_isAggregated | Načte příznak označující, jestli jsou data součástí agregace mnoha symbolů. |
IDiaSymbol::get_isCTypes | Načte příznak označující, zda soubor symbolů obsahuje typy jazyka C. |
IDiaSymbol::get_isCVTCIL | Načte příznak označující, jestli byl modul převeden z common intermediate language (CIL) na nativní kód. |
IDiaSymbol::get_isDataAligned | Načte příznak označující, jestli jsou prvky uživatelem definovaného datového typu zarovnané ke konkrétní hranici. |
IDiaSymbol::get_isHLSLData | Určuje, zda tento symbol představuje data jazyka HLSL (High Level Shader Language). |
IDiaSymbol::get_isHotpatchable | Načte příznak označující, jestli byl modul zkompilován pomocí přepínače kompilátoru /hotpatch (Create Hotpatchable Image). |
IDiaSymbol::get_isLTCG | Načte příznak označující, jestli byl spravovaný compiland propojený s LTCG linkeru. |
IDiaSymbol::get_isMatrixRowMajor | Určuje, jestli je matice hlavním řádkem. |
IDiaSymbol::get_isMSILNetmodule | Načte příznak označující, jestli je spravovaný compiland .netmodule (obsahující pouze metadata). |
IDiaSymbol::get_isMultipleInheritance | Určuje, zda this ukazatel odkazuje na datový člen s více dědičností. |
IDiaSymbol::get_isNaked | Načte příznak označující, jestli má funkce atribut nahý . |
IDiaSymbol::get_isOptimizedAway | Určuje, jestli je proměnná optimalizovaná. |
IDiaSymbol::get_isPointerBasedOnSymbolValue | Určuje, zda this je ukazatel založen na hodnotě symbolu. |
IDiaSymbol::get_isPointerToDataMember | Určuje, zda je tento symbol ukazatelem na datový člen. |
IDiaSymbol::get_isPointerToMemberFunction | Určuje, zda je tento symbol ukazatelem na členovou funkci. |
IDiaSymbol::get_isReturnValue | Určuje, zda proměnná nese návratovou hodnotu. |
IDiaSymbol::get_isSdl | Určuje, zda je modul zkompilován s možností /SDL. |
IDiaSymbol::get_isSingleInheritance | Určuje, zda this ukazatel odkazuje na datový člen s jednou dědičností. |
IDiaSymbol::get_isSplitted | Načte příznak označující, jestli byla data rozdělena do agregace samostatných symbolů. |
IDiaSymbol::get_isStatic | Načte příznak označující, jestli je funkce nebo vrstva thunk statická. |
IDiaSymbol::get_isStripped | Načte příznak označující, jestli byly ze souboru symbolů odebrány soukromé symboly. |
IDiaSymbol::get_isVirtualInheritance | Určuje, zda this ukazatel odkazuje na datový člen s virtuální dědičností. |
IDiaSymbol::get_language | Načte jazyk zdroje. |
IDiaSymbol::get_length | Načte počet bajtů paměti používané objektem reprezentovaným tímto symbolem. |
IDiaSymbol::get_lexicalParent | Načte odkaz na lexikální nadřazený symbol. |
IDiaSymbol::get_lexicalParentId | Načte lexikální nadřazený identifikátor symbolu. |
IDiaSymbol::get_libraryName | Načte název souboru knihovny nebo souboru objektu, ze kterého byl objekt načten. |
IDiaSymbol::get_liveRangeLength | Vrátí délku rozsahu adres, ve kterém je místní symbol platný. |
IDiaSymbol::get_liveRangeStartAddressSection | Vrátí část oddílu počátečního rozsahu adres, ve kterém je místní symbol platný. |
IDiaSymbol::get_liveRangeStartAddressOffset | Vrátí posun části počátečního rozsahu adres, ve kterém je místní symbol platný. |
IDiaSymbol::get_liveRangeStartRelativeVirtualAddress | Vrátí začátek rozsahu adres, ve kterém je místní symbol platný. |
IDiaSymbol::get_locationType | Načte typ umístění symbolu dat. |
IDiaSymbol::get_lowerBound | Načte dolní mez dimenze pole FORTRAN. |
IDiaSymbol::get_lowerBoundId | Načte identifikátor symbolu dolní hranice dimenze pole FORTRAN. |
IDiaSymbol::get_machineType | Načte typ cílového procesoru. |
IDiaSymbol::get_managed | Načte příznak, který označuje, jestli symbol odkazuje na spravovaný kód. |
IDiaSymbol::get_memorySpaceKind | Načte druh paměťového prostoru. |
IDiaSymbol::get_msil | Načte příznak označující, zda symbol odkazuje na kód jazyka MSIL (Microsoft Intermediate Language). |
IDiaSymbol::get_name | Načte název symbolu. |
IDiaSymbol::get_nested | Načte příznak označující, jestli je vnořený datový typ definovaný uživatelem. |
IDiaSymbol::get_noInline | Načte příznak označující, jestli je funkce označena atributem noinline . |
IDiaSymbol::get_noReturn | Načte příznak označující, zda byla funkce deklarována pomocí atributu noreturn . |
IDiaSymbol::get_noStackOrdering | Načte příznak označující, jestli se v rámci kontroly vyrovnávací paměti zásobníku nedá provést žádné řazení zásobníku. |
IDiaSymbol::get_notReached | Načte příznak označující, jestli se funkce nebo popisek nikdy nedosáhnou. |
IDiaSymbol::get_numberOfAcceleratorPointerTags | Vrátí počet značek ukazatelů akcelerátoru ve funkci zástupných procedur C++ AMP. |
IDiaSymbol::get_numberOfModifiers | Načte počet modifikátorů, které se použijí na původní typ. |
IDiaSymbol::get_numberOfRegisterIndices | Načte počet indexů registru. |
IDiaSymbol::get_numberOfRows | Načte počet řádků v matici. |
IDiaSymbol::get_numberOfColumns | Načte počet sloupců v matici. |
IDiaSymbol::get_objectFileName | Načte název souboru objektu. |
IDiaSymbol::get_objectPointerType | Načte typ ukazatele objektu pro metodu třídy. |
IDiaSymbol::get_oemId | Načte hodnotu symbolu oemId . |
IDiaSymbol::get_oemSymbolId | Načte hodnotu symbolu oemSymbolId . |
IDiaSymbol::get_offset | Načte posun umístění symbolu. |
IDiaSymbol::get_optimizedCodeDebugInfo | Načte příznak označující, jestli funkce nebo popisek obsahuje optimalizovaný kód a informace o ladění. |
IDiaSymbol::get_overloadedOperator | Načte příznak označující, jestli má uživatelem definovaný datový typ přetížené operátory. |
IDiaSymbol::get_packed | Načte příznak označující, jestli je datový typ definovaný uživatelem zabalený. |
IDiaSymbol::get_platform | Načte typ platformy, pro který byl program nebo compiland zkompilován. |
IDiaSymbol::get_pure | Načte příznak, který označuje, jestli je funkce čistě virtuální. |
IDiaSymbol::get_rank | Načte pořadí multidimenzionálního pole FORTRAN. |
IDiaSymbol::get_reference | Načte příznak označující, zda je typ ukazatele odkazem. |
IDiaSymbol::get_registerId | Načte návrh registru umístění. |
IDiaSymbol::get_registerType | Načte typ registru. |
IDiaSymbol::get_relativeVirtualAddress | Načte relativní virtuální adresu (RVA) umístění. |
IDiaSymbol::get_restrictedType | Určuje, jestli this je ukazatel označený jako omezený. |
IDiaSymbol::get_samplerSlot | Načte slot sampleru. |
IDiaSymbol::get_scoped | Načte příznak označující, jestli se datový typ definovaný uživatelem zobrazí v neglobalickém lexikálním oboru. |
IDiaSymbol::get_signature | Načte hodnotu podpisu symbolu. |
IDiaSymbol::get_sizeInUdt | Načte velikost člena uživatelem definovaného typu. |
IDiaSymbol::get_slot | Načte číslo slotu umístění. |
IDiaSymbol::get_sourceFileName | Načte název souboru zdrojového souboru. |
IDiaSymbol::getSrcLineOnTypeDefn | Načte zdrojový soubor a číslo řádku, které označuje, kde je definovaný zadaný typ definovaný uživatelem. |
IDiaSymbol::get_stride | Načte krok matice nebo stridovaného pole. |
IDiaSymbol::get_subType | Načte podtyp. |
IDiaSymbol::get_subTypeId | Načte ID podtypu. |
IDiaSymbol::get_symbolsFileName | Načte název souboru, ze kterého byly načteny symboly. |
IDiaSymbol::get_symIndexId | Načte jedinečný identifikátor symbolu. |
IDiaSymbol::get_symTag | Načte klasifikátor typu symbolu. |
IDiaSymbol::get_targetOffset | Načte část posunu cíle typu thunk. |
IDiaSymbol::get_targetRelativeVirtualAddress | Načte relativní virtuální adresu (RVA) cílového bloku. |
IDiaSymbol::get_targetSection | Načte oddíl adresy cílového bloku. |
IDiaSymbol::get_targetVirtualAddress | Načte virtuální adresu (VA) cílového bloku. |
IDiaSymbol::get_textureSlot | Načte slot textury. |
IDiaSymbol::get_thisAdjust | Načte logický this adjustor pro metodu. |
IDiaSymbol::get_thunkOrdinal | Načte typ thunk funkce. |
IDiaSymbol::get_timeStamp | Načte časové razítko základního spustitelného souboru. |
IDiaSymbol::get_token | Načte token metadat spravované funkce nebo proměnné. |
IDiaSymbol::get_type | Načte odkaz na podpis funkce. |
IDiaSymbol::get_typeId | Načte identifikátor typu symbolu. |
IDiaSymbol::get_types | Načte pole hodnot typů specifických pro kompilátor pro tento symbol. |
IDiaSymbol::get_typeIds | Načte pole hodnot identifikátoru typu specifického pro kompilátor pro tento symbol. |
IDiaSymbol::get_uavSlot | Načte slot uav. |
IDiaSymbol::get_udtKind | Načte celou řadu uživatelem definovaných typů (UDT). |
IDiaSymbol::get_unalignedType | Načte příznak označující, jestli je datový typ definovaný uživatelem nezarovnaný. |
IDiaSymbol::get_undecoratedName | Načte neověřený název názvu zdobeného jazyka C++ nebo názvu propojení. |
IDiaSymbol::get_undecoratedNameEx | get_undecoratedName Rozšíření metody, která načte nezakódovaný název na základě hodnoty pole rozšíření. |
IDiaSymbol::get_unmodifiedTypeId | Načte ID původního (nemodifikovaného) typu. |
IDiaSymbol::get_upperBound | Načte horní mez dimenze pole FORTRAN. |
IDiaSymbol::get_upperBoundId | Načte identifikátor symbolu horní hranice dimenze pole FORTRAN. |
IDiaSymbol::get_value | Načte hodnotu konstanty. |
IDiaSymbol::get_virtual | Načte příznak označující, jestli je funkce virtuální. |
IDiaSymbol::get_virtualAddress | Načte virtuální adresu (VA) umístění. |
IDiaSymbol::get_virtualBaseClass | Načte příznak označující, jestli je uživatelem definovaný datový typ virtuální základní třída. |
IDiaSymbol::get_virtualBaseDispIndex | Načte index do virtuální základní tabulky posunutí. |
IDiaSymbol::get_virtualBaseOffset | Načte posun v tabulce virtuálních funkcí virtuální funkce. |
IDiaSymbol::get_virtualBasePointerOffset | Načte posun virtuálního základního ukazatele. |
IDiaSymbol::get_virtualBaseTableType | Načte typ ukazatele virtuální základní tabulky. |
IDiaSymbol::get_virtualTableShape | Načte rozhraní symbolu typu virtuální tabulky pro uživatelem definovaný typ. |
IDiaSymbol::get_virtualTableShapeId | Načte identifikátor obrazce virtuální tabulky symbolu. |
IDiaSymbol::get_volatileType | Načte příznak označující, jestli je uživatelem definovaný datový typ nestálý. |
Poznámky
Poznámky pro volající
Získejte toto rozhraní voláním jedné z následujících metod:
Příklad
Tento příklad ukazuje, jak zobrazit místní proměnné pro funkci na dané relativní virtuální adrese. Ukazuje také, jak spolu vzájemně souvisí symboly různých typů.
Poznámka:
CDiaBSTR
je třída, která zabalí BSTR
řetězec a automaticky zpracuje uvolnění řetězce při vytvoření instance mimo rozsah.
void DumpLocalVars( DWORD rva, IDiaSession *pSession )
{
CComPtr< IDiaSymbol > pBlock;
if ( FAILED( psession->findSymbolByRVA( rva, SymTagBlock, &pBlock ) ) )
{
Fatal( "Failed to find symbols by RVA" );
}
CComPtr< IDiaSymbol > pscope;
for ( ; pBlock != NULL; )
{
CComPtr< IDiaEnumSymbols > pEnum;
// local data search
if ( FAILED( pBlock->findChildren( SymTagNull, NULL, nsNone, &pEnum ) ) )
{
Fatal( "Local scope findChildren failed" );
}
CComPtr< IDiaSymbol > pSymbol;
DWORD tag;
DWORD celt;
while ( pEnum != NULL &&
SUCCEEDED( pEnum->Next( 1, &pSymbol, &celt ) ) &&
celt == 1)
{
pSymbol->get_symTag( &tag );
if ( tag == SymTagData )
{
CDiaBSTR name;
DWORD kind;
pSymbol->get_name( &name );
pSymbol->get_dataKind( &kind );
if ( name != NULL )
wprintf_s( L"\t%s (%s)\n", name, szDataKinds[ kind ] );
}
else if ( tag == SymTagAnnotation )
{
CComPtr< IDiaEnumSymbols > pValues;
// local data search
wprintf_s( L"\tAnnotation:\n" );
if ( FAILED( pSymbol->findChildren( SymTagNull, NULL, nsNone, &pValues ) ) )
Fatal( "Annotation findChildren failed" );
pSymbol = NULL;
while ( pValues != NULL &&
SUCCEEDED( pValues->Next( 1, &pSymbol, &celt ) ) &&
celt == 1 )
{
CComVariant value;
if ( pSymbol->get_value( &value ) != S_OK )
Fatal( "No value for annotation data." );
wprintf_s( L"\t\t%ws\n", value.bstrVal );
pSymbol = NULL;
}
}
pSymbol = NULL;
}
pBlock->get_symTag( &tag );
if ( tag == SymTagFunction ) // stop when at function scope
break;
// move to lexical parent
CComPtr< IDiaSymbol > pParent;
if ( SUCCEEDED( pBlock->get_lexicalParent( &pParent ) )
&& pParent != NULL ) {
pBlock = pParent;
}
else
{
Fatal( "Finding lexical parent failed." );
}
};
}
Požadavky
Header:
Dia2.h
Knihovna: diaguids.lib
DLL: msdia80.dll