Share via


ICorDebugSymbolProvider2::GetGenericDictionaryInfo (método)

Recupera una asignación de diccionario genérico.

Sintaxis

HRESULT GetGenericDictionaryInfo(
   [out] ICorDebugMemoryBuffer** ppMemoryBuffer
);

Parámetros

ppMemoryBuffer
[out] Puntero a la dirección de un objeto ICorDebugMemoryBuffer que contiene la asignación del diccionario genérico. Vea la sección Comentarios para obtener más información.

Comentarios

Nota

Este método solo está disponible con .NET Native.

La asignación se compone de dos secciones de nivel superior:

  • Un directorio que contiene las direcciones virtuales relativas (RVA) de todos los diccionarios incluidos en esta asignación.

  • Un montón alineado por bytes que contiene información sobre la creación de instancias de objetos. Se inicia inmediatamente después de la última entrada de directorio.

El directorio

Cada entrada del directorio hace referencia a un desplazamiento dentro del montón; es decir, es un desplazamiento relativo al inicio del montón. El valor de las entradas individuales no es necesariamente único; varias entradas de directorio pueden apuntar al mismo desplazamiento en el montón.

La parte del directorio de la asignación del diccionario genérico tiene la estructura siguiente:

  • Los primeros cuatro bytes contienen el número de entradas del diccionario (es decir, el número de direcciones virtuales relativas en el diccionario). Nos referiremos a este valor como N. Si se establece el bit alto, las entradas se ordenan por dirección virtual relativa en orden ascendente.

  • Siguen las N entradas de directorio. Cada entrada consta de 8 bytes, en dos segmentos de 4 bytes:

    • Bytes de 0 a 3: RVA; dirección virtual relativa del diccionario.

    • Bytes de 4 a 7: desplazamiento; un desplazamiento relativo al inicio del montón.

El montón

El tamaño del montón se puede calcular con un lector de secuencias restando la longitud de la secuencia del tamaño del directorio + 4. En otras palabras:

Heap Size = Stream.Length – (Directory Size + 4)

donde el tamaño del directorio es N * 8.

El formato de cada elemento de información sobre la creación de instancias en el montón es:

  • La longitud de este elemento de información sobre la creación de instancias en bytes, en el formato de metadatos ECMA comprimido. El valor excluye esta información de longitud.

  • El número de tipos genéricos de creación de instancias, o T, en el formato de metadatos ECMA comprimido.

  • Tipos T, cada uno representado en el formato de firma de tipos ECMA.

Incluir la longitud de cada elemento del montón permite la ordenación simple de la sección del directorio sin afectar al montón.

Requisitos

Plataformas: Vea Requisitos de sistema.

Encabezado: CorDebug.idl, CorDebug.h

Biblioteca: CorGuids.lib

Versiones de .NET Framework: disponible a partir de la versión 4.6, solo en .NET Native

Consulte también