IDiaSymbol
Descreve as propriedades de uma instância do símbolo.
IDiaSymbol : IUnknown
Métodos em ordem alfabética
A tabela a seguir mostra os métodos de IDiaSymbol.
Dica
Os símbolos retornará dados significativos para apenas alguns de esses métodos, dependendo do tipo de símbolo.Se um método retorna S_OK, então esse método retorna dados significativos.
Método |
Descrição |
---|---|
Recupera todos os filhos do símbolo. |
|
Recupera os filhos do símbolo. Este método é a versão de IDiaSymbol::findChildrenestendido. |
|
Recupera os filhos do símbolo que são válidos em um endereço especificado. |
|
Recupera os filhos do símbolo que são válidos em um endereço virtual relativo especificado (RVA). |
|
Recupera os filhos do símbolo que são válidos em um endereço virtual especificado. |
|
Recupera uma enumeração que permite que um cliente executa iterações através dos quadros definidas em um endereço especificado. |
|
Recupera uma enumeração que permite que um cliente executa iterações através dos quadros definidas em um endereço virtual relativo especificado (RVA). |
|
Recupera uma enumeração que permite que um cliente executa iterações através dos quadros definidas em um endereço virtual especificado (VA). |
|
Recupera uma enumeração que permite que um cliente executa iterações através da linha informações do número das funções que inlined, direta ou indiretamente, em esse símbolo. |
|
Recupera uma enumeração que permite que um cliente executa iterações através da linha informações do número das funções que inlined, direta ou indiretamente, em esse símbolo dentro do intervalo de endereços especificado. |
|
Recupera uma enumeração que permite que um cliente executa iterações através da linha informações do número das funções que inlined, direta ou indiretamente, em esse símbolo dentro do endereço virtual relativo especificado (RVA). |
|
Recupera uma enumeração que permite que um cliente executa iterações através da linha informações do número das funções que inlined, direta ou indiretamente, em esse símbolo dentro do endereço virtual especificado (VA). |
|
Um determinado valor correspondente da marca, esse método retorna uma enumeração de símbolos que estão contidos em essa função de stub em um endereço virtual relativo especificado. |
|
Retorna o número de marcas ponteiro de aceleradores na função de stub de AMP de C++. |
|
Retorna todos os valores da marca do ponteiro de aceleradores que correspondem à função de stub de aceleração de AMP de C++. |
|
Recupera o modificador de acesso de um membro da classe. |
|
Recupera a parte do deslocamento de um local de endereços. |
|
Recupera a parte da seção de um local de endereços. |
|
Recupera um sinalizador que indica se outro símbolo referencia este endereço. |
|
Recupera o valor da idade de um banco de dados do programa. |
|
Recupera o identificador do símbolo do tipo de índice de matriz. |
|
Recupera o identificador de tipo de índice de matriz do símbolo. |
|
Retorna o número de versão principal back-end. |
|
Retorna o número de versão secundária back-end. |
|
Retorna o número de compilação back-end. |
|
Recupera o deslocamento base de dados. |
|
Recupera o encaixe de base de dados. |
|
Recupera o símbolo de que o ponteiro é baseado. |
|
Recupera a identificação do símbolo de que o ponteiro é baseado. |
|
Recupera a marca de tipo de um tipo simples. |
|
Retorna a posição dos bits de um local. |
|
Recupera um tipo de interna de classificação de HLSL. |
|
Retorna um indicador das convenção de chamada de um método. |
|
Recupera uma referência ao pai da classe do símbolo. |
|
Recupera o identificador da classe pai do símbolo. |
|
Recupera um sinalizador que indica se o símbolo se refere a um endereço codificado. |
|
Recupera um sinalizador que indica se o símbolo foi compilador-geradas. |
|
Recupera o nome do compilador usado para criar Compiland. |
|
Recupera um sinalizador que indica se o tipo de dados definido pelo usuário tem um construtor. |
|
Recupera o símbolo de contendo o símbolo. |
|
Recupera um sinalizador que indica se o tipo de dados definido pelo usuário é constante. |
|
Retorna o número de itens em uma lista ou matriz. |
|
Retorna o número de intervalos de endereços válidos associados com o símbolo local. |
|
Recupera um sinalizador que indica se a função usa uma convenção de chamada personalizado. |
|
Recupera os bytes de dados de um símbolo de OEM. |
|
Recupera a classificação variável de um símbolo de dados. |
|
Recupera o sinalizador que descreve a edição e continuação recursos do programa ou a unidade compilado. |
|
Recupera um sinalizador que indica se a função usa um distante de retorno. |
|
Retorna o número de versão principal front-end. |
|
Retorna o número de versão secundária front-end. |
|
Retorna o número de compilação front-end. |
|
Recupera um sinalizador que indica se o símbolo público refere-se a uma função. |
|
Recupera GUID do símbolo. |
|
Recupera um sinalizador que indica se a função contém uma chamada para alloca. |
|
Recupera um sinalizador que indica se o tipo de dados definido pelo usuário tem algum operador de atribuição definido. |
|
Recupera um sinalizador que indica se o tipo de dados definido pelo usuário tem algum operador cast definido. |
|
Recupera um sinalizador que indica se o compiland contém as informações de depuração. |
|
Recupera um sinalizador que indica se a função tem o manipulador de exceção de energia AC ++-style. |
|
Recupera um sinalizador que indica se a função tem um manipulador assíncrono de exceção. |
|
Recupera um sinalizador que indica se a função tem o assembly embutido. |
|
Recupera um sinalizador que indica se a função contiver um comando de longjmp (parte de manipulação de exceção ctype de estilo). |
|
Recupera um sinalizador que indica se o módulo contém o código gerenciado. |
|
Recupera um sinalizador que indica se o tipo de dados definido pelo usuário tiver aninhado definições de tipo. |
|
Recupera um sinalizador que indica se a função ou o compiland têm as verificações de segurança compilados em (através da opção do compilador de /GS (verificação de segurança do buffer) ). |
|
Recupera um sinalizador que indica se a função possui tratamento de exceção estruturada Win32-style. |
|
Recupera um sinalizador que indica se a função contiver um comando de setjmp. |
|
Recupera um sinalizador que indica se o tipo de dados definido pelo usuário é uma classe base virtual indireta. |
|
Recupera um sinalizador que indica se a função foi marcado com o atributo embutido. |
|
Recupera um sinalizador que indica se a função tem um retorno da declaração de interrupção. |
|
Recupera um sinalizador que indica se a função é uma função virtual da classe base. |
|
Recupera um sinalizador que indica se o símbolo corresponde a uma variável local compartilhado grupo no código compilado para o acelerador de AMP de C++. |
|
Recupera um sinalizador que indica se o símbolo corresponde ao símbolo do intervalo de definição para o componente de marca de uma variável do ponteiro no código compilado para o acelerador de AMP de C++. O símbolo do intervalo de definição é o local de uma variável para um período de endereços. |
|
Indica se o símbolo corresponde a um símbolo de nível superior de função para um shader compilado para um acelerador que corresponde a um chamada de parallel_for_each . |
|
Recupera um sinalizador que indica se os dados são parte de uma função agregada de muitos símbolos. |
|
Recupera um sinalizador que indica se o arquivo do símbolo contém C. |
|
Recupera um sinalizador que indica se o módulo foi convertido de linguagem intermediária runtime (CIL) para código nativo. |
|
Recupera um sinalizador que indica se os elementos de um tipo de dados definido pelo usuário são alinhados a um limite específico. |
|
Especifica se esse símbolo representa dados de alto nível language (HLSL) de Características. |
|
Recupera um sinalizador que indica se o módulo foi criado com a opção do compilador de /hotpatch (Criar imagem hotpatchable) . |
|
Recupera um sinalizador que indica se o compiland gerenciado foi associado com o LTCG de vinculador. |
|
Especifica se a matriz é principais da linha. |
|
Recupera um sinalizador que indica se o compiland gerenciado é A. netmodule (que contém somente metadados). |
|
Especifica se os pontos do ponteiro de this a um membro de dados com várias heranças. |
|
Recupera um sinalizador que indica se a função tem o atributo de naked (C++) . |
|
Especifica se a variável é otimizado possam. |
|
Especifica se o ponteiro de this é baseado em um valor do símbolo. |
|
Especifica se esse símbolo é um ponteiro para um membro de dados. |
|
Especifica se esse símbolo é um ponteiro para uma função de membro. |
|
Especifica se a variável leva um valor de retorno. |
|
Especifica se o módulo é compilado com a opção /SDL. |
|
Especifica se os pontos do ponteiro de this a um membro de dados com herança única. |
|
Recupera um sinalizador que indica se os dados foram divididos em uma função agregada de símbolos separados. |
|
Recupera um sinalizador que indica se uma função ou uma camada de thunk são estático. |
|
Recupera um sinalizador que indica se símbolos particulares tenham removidos do arquivo do símbolo. |
|
Especifica se os pontos do ponteiro de this a um membro de dados com herança virtual. |
|
Recupera o idioma de origem. |
|
Retorna o número de bytes de memória usados pelo objeto representado por esse símbolo. |
|
Recupera uma referência ao pai lexicalmente do símbolo. |
|
Recupera o identificador pai lexicalmente do símbolo. |
|
Recupera o nome de arquivo de biblioteca ou do objeto que o objeto foi carregado. |
|
Retorna o tamanho do intervalo de endereços em que o símbolo local é válido. |
|
Retorna a parte da seção do intervalo de endereços começando em que o símbolo local é válido. |
|
Retorna a parte do deslocamento do intervalo de endereços começando em que o símbolo local é válido. |
|
Retorna o início do intervalo de endereços em que o símbolo local é válido. |
|
Recupera o tipo do local de um símbolo de dados. |
|
Recupera o limite inferior de uma dimensão da matriz de FORTRAN. |
|
Recupera o identificador do símbolo do limite inferior de uma dimensão da matriz de FORTRAN. |
|
Recupera o tipo CPU de destino. |
|
Recupera um sinalizador indicando se que o símbolo refere-se ao código gerenciado. |
|
Recupera o tipo de espaço de memória. |
|
Recupera um sinalizador que indica se o símbolo refere-se ao código Microsoft intermediate language (MSIL). |
|
Recupera o nome do símbolo. |
|
Recupera um sinalizador que indica se o tipo de dados definido pelo usuário está aninhado. |
|
Recupera um sinalizador que indica se a função é marcada com o atributo de noinline . |
|
Recupera um sinalizador que indica se a função foi declarada com o atributo de noreturn . |
|
Recupera um sinalizador que indica se nenhum pedido de pilha pode ser feito como parte de verificação de buffer de pilha. |
|
Recupera um sinalizador que indica se a função ou o rótulo são alcançadas nunca. |
|
Retorna o número de marcas ponteiro de aceleradores na função de stub de AMP de C++. |
|
Retorna o número de modificadores que são aplicados ao tipo original. |
|
Retorna o número de índices de registro. |
|
Retorna o número de linhas na matriz. |
|
Retorna o número de colunas na matriz. |
|
Recupera o nome de arquivo do objeto. |
|
Recupera o tipo ponteiro de objeto para um método da classe. |
|
Recupera o valor de oemId do símbolo. |
|
Recupera o valor de oemSymbolId do símbolo. |
|
Recuperar o deslocamento do local do símbolo. |
|
Recupera um sinalizador que indica se a função ou o rótulo contêm o código bem como informações otimizados de depuração. |
|
Recupera um sinalizador que indica se o tipo de dados definido pelo usuário tenha sobrecarregado operadores. |
|
Recupera um sinalizador que indica se o tipo de dados definido pelo usuário é empacotado. |
|
Recupera o tipo de plataforma para que o programa ou o compiland foram compilados. |
|
Recupera um sinalizador que indicando se a função é puro virtual. |
|
Recupera o grau de um array multidimensional de FORTRAN. |
|
Recupera um sinalizador que indica se um tipo ponteiro é uma referência. |
|
Recupera o designador de registro do local. |
|
Recupera o tipo do registro. |
|
Recupera o endereço virtual relativo (RVA) local. |
|
Especifica se o ponteiro de this está embandeirado como restrito. |
|
Recupera o encaixe de demonstrador. |
|
Recupera um sinalizador que indica se o tipo de dados definido pelo usuário será exibido em um escopo lexicalmente nonglobal. |
|
Recupera o valor da assinatura do símbolo. |
|
Retorna o tamanho de um membro de um tipo definido pelo usuário. |
|
Retorna o número de encaixe de local. |
|
Recupera o nome do arquivo de origem. |
|
Recupera o arquivo fonte e o número da linha que indica onde um tipo definido pelo usuário especificado está definido. |
|
Recupera o passo de matriz ou matriz strided. |
|
Recupera o tipo sub. |
|
Recupera a identificação de tipo sub |
|
Recupera o nome do arquivo que os símbolos foram carregados. |
|
Recupera o identificador exclusivo do símbolo. |
|
Recupera o classificador do tipo do símbolo. |
|
Recupera a seção de deslocamento de um destino de thunk. |
|
Recupera o endereço virtual relativo (RVA) de um destino de thunk. |
|
Recupera a seção de um endereço de destino de thunk. |
|
Recupera o endereço virtual (VA) de um destino de thunk. |
|
Recupera o encaixe de textura. |
|
Recupera o ajustador lógico de this para o método. |
|
Recupera o tipo de thunk de uma função. |
|
Recupera o carimbo de data/hora do arquivo executável subjacente. |
|
Recupera o token de metadados de uma função ou de uma variável gerenciado. |
|
Recupera uma referência para a assinatura de função. |
|
Recupera o identificador de tipo do símbolo. |
|
Recupera uma matriz de compilador valores específicos de tipo para esse símbolo. |
|
Recupera uma matriz de valores específicos de compilador identificador de tipo para esse símbolo. |
|
Recupera o encaixe de uav. |
|
Recupera a variedade de um tipo definido pelo usuário (UDT). |
|
Recupera um sinalizador que indica se o tipo de dados definido pelo usuário é unaligned. |
|
Recupera o nome undecorated para a C++ decorada, ou ligação, o nome. |
|
A extensão do método de get_undecoratedName que retorna o nome undecorated com base no valor de um campo de extensão. |
|
Recupera a identificação do tipo () não modificadas original. |
|
Recupera o limite superior de uma dimensão da matriz de FORTRAN. |
|
Recupera o identificador do símbolo o limite superior de uma dimensão da matriz de FORTRAN. |
|
Recupera o valor de uma constante. |
|
Recupera um sinalizador que indica se a função é virtual. |
|
Recupera o endereço virtual (VA) local. |
|
Recupera um sinalizador que indica se o tipo de dados definido pelo usuário é uma classe base virtual. |
|
Retorna o índice à tabela de base de deslocamento virtual. |
|
Recupera o deslocamento na tabela de funções virtuais de uma função virtual. |
|
Recuperar o deslocamento do ponteiro base virtual. |
|
Recupera o tipo de um ponteiro de base virtual da tabela. |
|
Recupera a interface do símbolo do tipo de tabela virtual para um tipo definido pelo usuário. |
|
Recupera o identificador virtual da forma da tabela do símbolo. |
|
Recupera um sinalizador que indica se o tipo de dados definido pelo usuário é temporário. |
Comentários
Observações para chamadores
Obtenha essa interface chamando um dos seguintes métodos:
Exemplo
Este exemplo mostra como exibir as variáveis locais para uma função em um endereço virtual relativo dado. Também mostra como símbolos de diferentes tipos são relacionados entre si.
Dica
CDiaBSTR é uma classe que quebra BSTR e automaticamente trata que liberam a cadeia de caracteres quando a instanciação sai do escopo.
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." );
}
};
}
Requisitos
Header: Dia2.h
Biblioteca: diaguids.lib
DLL: msdia80.dll
Consulte também
Referência
Hierarquia de classes de tipos de símbolos