Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Recupera um mapa de dicionário genérico.
Sintaxe
HRESULT GetGenericDictionaryInfo(
[out] ICorDebugMemoryBuffer** ppMemoryBuffer
);
Parâmetros
ppMemoryBuffer
[saídas] Um ponteiro para o endereço de um objeto ICorDebugMemoryBuffer que contém o mapa de dicionário genérico. Consulte a seção Comentários para obter mais informações.
Observações
Observação
Esse método está disponível apenas com o .NET Native.
O mapa consiste em duas seções de nível superior:
Um diretório que contém os endereços virtuais relativos (RVA) de todos os dicionários incluídos neste mapa.
Uma pilha alinhada a bytes que contém informações de instanciação de objeto. Ele começa imediatamente após a última entrada de diretório.
O Diretório
Cada entrada no diretório refere-se a um deslocamento dentro da pilha; ou seja, é um deslocamento que é relativo ao início da pilha. O valor das entradas individuais não é necessariamente único; É possível que várias entradas de diretório apontem para o mesmo deslocamento no heap.
A parte do diretório do mapa de dicionário genérico tem a seguinte estrutura:
Os primeiros 4 bytes contêm o número de entradas do dicionário (ou seja, o número de endereços virtuais relativos no dicionário). Referir-nos-emos a este valor como N. Se o bit alto estiver definido, as entradas serão classificadas por endereço virtual relativo em ordem crescente.
Seguem-se as entradas do diretório N . Cada entrada consiste em 8 bytes, em dois segmentos de 4 bytes:
Bytes 0-3: RVA; o endereço virtual relativo do dicionário.
Bytes 4-7: Deslocamento; um deslocamento relativo ao início da pilha.
A pilha
O tamanho da pilha pode ser calculado por um leitor de fluxo subtraindo o comprimento do fluxo do tamanho do diretório + 4. Por outras palavras:
Heap Size = Stream.Length – (Directory Size + 4)
onde o tamanho do diretório é N * 8.
O formato para cada item de informação de instanciação na pilha é:
O comprimento deste item de informação de instanciação em bytes no formato de metadados ECMA comprimidos. O valor exclui essas informações de comprimento.
O número de tipos de instanciação genéricos, ou T, no formato de metadados ECMA compactados.
Tipos T , cada um representado no formato de assinatura de tipo ECMA.
A inclusão do comprimento para cada elemento de heap permite uma classificação simples da seção de diretório sem afetar o heap.
Requerimentos
Plataformas: Consulte Sistemas operacionais suportados pelo .NET.
Cabeçalho: CorDebug.idl, CorDebug.h
Biblioteca: CorGuids.lib
Versões .NET: Disponível desde: .NET Framework 4.6