Servicios de diagnóstico

La biblioteca Microsoft Foundation Class proporciona muchos servicios de diagnóstico que depurar sus programas más fácil. Estos servicios de diagnóstico incluyen macros y funciones globales que permiten realizar el seguimiento de la memoria del programa asignaciones, volcar el contenido de los objetos en tiempo de ejecución e imprimir mensajes de depuración en tiempo de ejecución. Las macros y funciones globales de servicios de diagnóstico se agrupan en las siguientes categorías:

Estas macros y funciones están disponibles para todas las clases derivadas de CObject en las versiones Debug y Release de MFC. Sin embargo, todos excepto DEBUG_NEW y verificar hacer nada en la versión de lanzamiento.

En la biblioteca de depuración, todos los bloques de memoria asignados están entre corchetes con una serie de "Guardia bytes." Si estos bytes están perturbados por una escritura de memoria errante, las rutinas de diagnósticos pueden informar de un problema. Si se incluye la línea

# define DEBUG_NEW nuevo

en el archivo de la aplicación, todas las llamadas a nuevo almacenará el nombre y número de línea donde realizó la asignación de memoria. La función CMemoryState::DumpAllObjectsSince mostrará esta información adicional, lo que le permite identificar pérdidas de memoria. También se refieren a la clase CDumpContext para obtener información adicional sobre salida de diagnóstico.

Además, la biblioteca de tiempo de ejecución c también admite un conjunto de funciones de diagnóstico que puede utilizar para depurar las aplicaciones. Para obtener más información, consulte Rutinas de depuración en la Referencia de la biblioteca de tiempo de ejecución.

Macros de diagnóstico General de MFC

VALER Imprime un mensaje y, a continuación, se cancela el programa si la expresión especificada se evalúa como false en la versión de la biblioteca de depuración.
ASSERT_KINDOF Pruebas de que un objeto es un objeto de la clase especificada o de una clase derivada de la clase especificada.
ASSERT_VALID Prueba la validez interna de un objeto llamando a su función de miembros AssertValid ; normalmente se reemplaza de CObject.
DEBUG_NEW Proporciona un nombre de archivo y número de línea para todas las asignaciones de objeto en modo de depuración para ayudar a encontrar pérdidas de memoria.
TRAZA Proporciona printf-como capacidad en la versión de la biblioteca de depuración.
TRACE0 Similar a la traza pero toma un formato de cadena sin argumentos.
TRACE1 Similar a la traza pero toma un formato de cadena con un único argumento.
TRACE2 Similar a la traza pero toma un formato de cadena con dos argumentos.
TRACE3 Similar a la traza pero toma un formato de cadena con tres argumentos.
COMPROBAR Similar a ASSERT pero evalúa la expresión en la versión de la biblioteca, así como en la versión de depuración.

MFC General diagnóstico Variables y funciones

afxDump Variable global que envía información de CDumpContext a la ventana de resultados del depurador o a la terminal de depuración.
afxMemDF Variable global que controla el comportamiento del depuración asignador de memoria.
afxTraceEnabled Variable global que se utiliza para habilitar o deshabilitar la salida de la macro TRACE.
afxTraceFlags Variable global utilizado para activar las funciones de reporting integradas de MFC.
AfxCheckError Variable global utilizado para probar el pasado SCODE para ver si es un error y, si es así, arroja el error adecuado.
AfxCheckMemory Comprueba que la integridad de todo memoria asignada actualmente.
AfxDump Si se llama en el depurador, vuelca el estado de un objeto mientras se depura.
AfxDumpStack Generar una imagen de la pila actual. Esta función siempre está vinculada estáticamente.
AfxEnableMemoryTracking Activa la memoria de seguimiento dentro y fuera de.
AfxIsMemoryBlock Comprueba que se ha asignado correctamente un bloque de memoria.
AfxIsValidAddress Verifica que un intervalo de direcciones de memoria es dentro de los límites del programa.
AfxIsValidString Determina si un puntero a una cadena es válido.
AfxSetAllocHook Permite la llamada de la función en cada asignación de memoria.

Funciones de diagnóstico de objeto MFC

AfxDoForAllClasses Realiza una función especificada en todas CObject-derivadas de clases que admiten la verificación de tipos en tiempo de ejecución.
AfxDoForAllObjects Realiza una función especificada en todas CObject-objetos que se asignaron con nuevos derivados.

Index