Tipos
La información de tipo del archivo de símbolos de un módulo se identifica mediante dos fragmentos de información: un identificador de tipo y la dirección base del módulo al que pertenece el tipo. Los métodos siguientes se pueden usar para buscar un identificador de tipo:
GetTypeId devuelve el identificador de tipo de un nombre de tipo determinado.
GetSymbolTypeId devuelve el identificador de tipo para el tipo de un símbolo con el nombre especificado.
GetOffsetTypeId devuelve el identificador de tipo del símbolo que se encuentra en la ubicación especificada.
GetTypeName y GetTypeSize devuelven el nombre y el tamaño de un tipo, respectivamente.
Los siguientes métodos útiles se pueden usar para leer y escribir datos con tipo en la memoria física y virtual del destino:
Imprimir datos con tipo
Para dar formato a los datos con tipo y enviarlos a las devoluciones de llamada de salida, use OutputTypedDataPhysical y OutputTypedDataVirtual para los datos de la memoria física y virtual del destino, respectivamente.
Las opciones de tipo descritas en DEBUG_TYPEOPTS_XXX afectan al modo en que el motor da formato a los datos con tipo antes de enviarlos a las devoluciones de llamada de salida.
Las opciones de tipo se pueden activar mediante AddTypeOptions y desactivarlas mediante RemoveTypeOptions.
GetTypeOptions devuelve las opciones de tipo actuales. Para establecer todas las opciones de tipo a la vez, use SetTypeOptions.
Interpretación de datos sin procesar mediante información de tipo
La API del motor de depurador admite la interpretación de datos con tipo. Esto proporciona una manera de recorrer las jerarquías de objetos en el destino, incluidos buscar miembros de estructuras, desreferenciar punteros y buscar elementos de matriz.
Los datos con tipo se describen mediante instancias de la estructura de DEBUG_TYPED_DATA y representan regiones de memoria en la conversión de destino a un tipo determinado. La operación request de DEBUG_REQUEST_EXT_TYPED_DATA_ANSI se usa para manipular estas instancias. Se pueden inicializar en el resultado de las expresiones o mediante la conversión de regiones de memoria a un tipo especificado. Para obtener una lista de todas las suboperaciones que admite la operación de solicitud de DEBUG_REQUEST_EXT_TYPED_DATA_ANSI, consulte EXT_TDOP.
Información adicional
Para más información sobre las devoluciones de llamada de salida, consulte Entrada y salida.