Rutinas de depuración
La versión de depuración de la biblioteca en tiempo de ejecución de C muchos servicios de diagnóstico que los programas de depuración más fáciles y permiten a los programadores de software:
el paso directamente en tiempo de ejecución funciona durante la depuración
Aserciones, errores, y excepciones de resolución
Siga paso a paso las asignaciones de la pila y evitar pérdidas de memoria
Mensajes de depuración del informe al usuario
Para utilizar estas rutinas, el indicador de _DEBUG debe definir.Todas estas rutinas no hacen nada en una compilación comercial de una aplicación.Para obtener más información sobre cómo utilizar las nuevas rutinas de depuración, vea Técnicas de depuración de CRT.
Versiones de depuración de las rutinas de biblioteca en tiempo de ejecución de C
rutina |
Utilice |
equivalente de .NET Framework |
---|---|---|
Evaluar una expresión y genera un informe de depuración cuando el resultado es FALSE |
||
Similar a _ASSERT, pero incluye la expresión incorrectos en el informe generado |
||
Confirme la integridad de los bloques de memoria asignados en el montón de depuración |
||
Establece un punto de interrupción. |
No es aplicablePara llamar a la función estándar de C, utilice PInvoke.Para obtener más información, vea La invocación de plataforma ejemplos. |
|
Generar un informe de depuración con un mensaje de usuario y enviar el informe a tres posibles destinos |
System:: Diagnostics:: depuración:: Escribir, System:: Diagnostics:: depuración:: Writeline, System:: Diagnostics:: depuración:: WriteIf, System:: Diagnostics:: depuración:: WriteLineIf |
|
Llame a una función aplicación-proporcionada para todos los tipos de _CLIENT_BLOCK en la pila |
No es aplicablePara llamar a la función estándar de C, utilice PInvoke.Para obtener más información, vea La invocación de plataforma ejemplos. |
|
Vuelque todos los bloques de memoria del montón de depuración cuando una pérdida de memoria significativa ha producido |
No es aplicablePara llamar a la función estándar de C, utilice PInvoke.Para obtener más información, vea La invocación de plataforma ejemplos. |
|
Compruebe que un bloque de memoria especificado se encuentra dentro del montón local y que tiene un identificador en bloques de pila válida de depuración |
No es aplicablePara llamar a la función estándar de C, utilice PInvoke.Para obtener más información, vea La invocación de plataforma ejemplos. |
|
Comprueba que un puntero especificado está en el montón local |
No es aplicablePara llamar a la función estándar de C, utilice PInvoke.Para obtener más información, vea La invocación de plataforma ejemplos. |
|
Compruebe que un intervalo de memoria especificado es válido para leer y escribir |
No es aplicablePara llamar a la función estándar de C, utilice PInvoke.Para obtener más información, vea La invocación de plataforma ejemplos. |
|
Obtiene el estado actual del montón de depuración y almacenarla en una estructura aplicación-proporcionada de _CrtMemState |
No es aplicablePara llamar a la función estándar de C, utilice PInvoke.Para obtener más información, vea La invocación de plataforma ejemplos. |
|
Comparar con dos estados de memoria para las diferencias significativas y devolver los resultados |
No es aplicablePara llamar a la función estándar de C, utilice PInvoke.Para obtener más información, vea La invocación de plataforma ejemplos. |
|
Vuelque información sobre objetos del montón como un punto de comprobación especificado se ha tomado o el inicio de la ejecución del programa |
No es aplicablePara llamar a la función estándar de C, utilice PInvoke.Para obtener más información, vea La invocación de plataforma ejemplos. |
|
Vuelque la información de encabezado de depuración para un estado especificado de la memoria en un formulario usuario-legible |
||
Devuelve el tipo de bloque/el subtipo asociado a un puntero especificado del bloque del montón de depuración. |
No es aplicablePara llamar a la función estándar de C, utilice PInvoke.Para obtener más información, vea La invocación de plataforma ejemplos. |
|
Instale una función de asignación definido por cliente enlazandola en el proceso de asignación de memoria de depuración en tiempo de ejecución de C |
No es aplicablePara llamar a la función estándar de C, utilice PInvoke.Para obtener más información, vea La invocación de plataforma ejemplos. |
|
Establezca un punto de interrupción en un número de orden especificado de la asignación de objetos |
No es aplicablePara llamar a la función estándar de C, utilice PInvoke.Para obtener más información, vea La invocación de plataforma ejemplos. |
|
Recuperar o modificar el estado del indicador de _crtDbgFlag para controlar el comportamiento de la asignación del administrador del montón de depuración |
No es aplicablePara llamar a la función estándar de C, utilice PInvoke.Para obtener más información, vea La invocación de plataforma ejemplos. |
|
Instale una función definido por la aplicación que se denomina cada vez que una función de volcado de depuración se denomina para volcar los bloques de memoria del tipo de _CLIENT_BLOCK |
No es aplicablePara llamar a la función estándar de C, utilice PInvoke.Para obtener más información, vea La invocación de plataforma ejemplos. |
|
Identifique el archivo o la secuencia que se utilizará como destino de un informe concreto escribe por _CrtDbgReport |
No es aplicablePara llamar a la función estándar de C, utilice PInvoke.Para obtener más información, vea La invocación de plataforma ejemplos. |
|
Instale una función definido por cliente de informe enlazandola en el proceso de informe de depuración en tiempo de ejecución de C |
No es aplicablePara llamar a la función estándar de C, utilice PInvoke.Para obtener más información, vea La invocación de plataforma ejemplos. |
|
Las instalaciones o por una función definido por cliente de informe enlazandola en el proceso de informe de depuración en tiempo de ejecución de C. |
No es aplicablePara llamar a la función estándar de C, utilice PInvoke.Para obtener más información, vea La invocación de plataforma ejemplos. |
|
Especifique los destinos generales de un tipo específico del informe generado por _CrtDbgReport |
No es aplicablePara llamar a la función estándar de C, utilice PInvoke.Para obtener más información, vea La invocación de plataforma ejemplos. |
|
Seguir el progreso de la aplicación genera un informe de depuración llamando a _CrtDbgReport con una cadena de formato y un número variable de argumentos.No proporciona información del archivo de código fuente y el número de línea. |
No es aplicablePara llamar a la función estándar de C, utilice PInvoke.Para obtener más información, vea La invocación de plataforma ejemplos. |
|
Similar a macros de _RPTn , pero proporciona el nombre del archivo y el número de línea donde la solicitud de informe se originó |
No es aplicablePara llamar a la función estándar de C, utilice PInvoke.Para obtener más información, vea La invocación de plataforma ejemplos. |
|
Asigna un número especificado de bloques de memoria del montón con el espacio adicional para un encabezado de depuración y sobrescriba los búferes |
No es aplicablePara llamar a la función estándar de C, utilice PInvoke.Para obtener más información, vea La invocación de plataforma ejemplos. |
|
Cambiar el tamaño de un bloque de memoria especificado en la pila expandiendo o contratando el bloque |
No es aplicablePara llamar a la función estándar de C, utilice PInvoke.Para obtener más información, vea La invocación de plataforma ejemplos. |
|
Libere un bloque de memoria del montón |
No es aplicablePara llamar a la función estándar de C, utilice PInvoke.Para obtener más información, vea La invocación de plataforma ejemplos. |
|
Cree un absoluto o un nombre de ruta de acceso completa para el nombre de ruta de acceso relativa especificado, utilizando _malloc_dbg para asignar memoria. |
||
Obtenga el directorio de trabajo actual, mediante _malloc_dbg para asignar memoria. |
No es aplicablePara llamar a la función estándar de C, utilice PInvoke.Para obtener más información, vea La invocación de plataforma ejemplos. |
|
Asigna un bloque de memoria del montón con el espacio adicional para un encabezado de depuración y sobrescriba los búferes |
No es aplicablePara llamar a la función estándar de C, utilice PInvoke.Para obtener más información, vea La invocación de plataforma ejemplos. |
|
Calcule el tamaño de un bloque de memoria del montón |
No es aplicablePara llamar a la función estándar de C, utilice PInvoke.Para obtener más información, vea La invocación de plataforma ejemplos. |
|
Reasigne un bloque de memoria especificado en la pila moviendo o cambiando el tamaño del bloque |
No es aplicablePara llamar a la función estándar de C, utilice PInvoke.Para obtener más información, vea La invocación de plataforma ejemplos. |
|
Duplica una cadena, con _malloc_dbg para asignar memoria. |
||
Genere los nombres que puede utilizar para crear archivos temporales, mediante _malloc_dbg para asignar memoria. |
No es aplicablePara llamar a la función estándar de C, utilice PInvoke.Para obtener más información, vea La invocación de plataforma ejemplos. |
Las rutinas de depuración se pueden utilizar para recorrer el código fuente para la mayoría de las otras rutinas de c durante el proceso de depuración.Sin embargo, Microsoft vea alguna tecnología ser propietaria y, por consiguiente, no proporciona el código fuente de estas rutinas.La mayoría de estas rutinas pertenecen al control de excepciones o grupos que procesan flotantes, pero algunos otras se incluyen también.La tabla siguiente se enumeran estas rutinas.
Rutinas de c Que No disponible en forma de código fuente
printf, _printf_l, wprintf, _wprintf_l, printf_s, _printf_s_l, wprintf_s, _wprintf_s_l* |
||
scanf, _scanf_l, wscanf, _wscanf_l, scanf_s, _scanf_s_l, wscanf_s, _wscanf_s_l* |
||
|
* Aunque el código fuente esté disponible para la mayor parte de esta rutina, realiza una llamada interna a otra rutina para la que el código fuente no se proporcione.
Un tiempo de ejecución de C funciones y los operadores de C++ se comportan de manera diferente cuando se invoca de una versión de depuración de una aplicación.(Observe que una compilación de depuración de una aplicación puede realizarse definiendo el indicador de _DEBUG o vincular con una versión de depuración de la biblioteca en tiempo de ejecución de C). Las diferencias de rendimiento constan de normalmente las características adicionales o la información proporcionada por la rutina en el proceso de depuración.La tabla siguiente se enumeran estas rutinas.
Rutinas que Forma de manera diferente en una compilación de depuración de una aplicación
Rutina de C anulación |
operador de C++ cancelación |
Rutina de C validar |
operador de C++ nuevo |
Para obtener más información sobre cómo utilizar las versiones de depuración de los operadores de C++ en la tabla anterior, vea Uso del montón de depuración de C++.