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

_ASSERT

Evaluar una expresión y genera un informe de depuración cuando el resultado es FALSE

System:: Diagnostics:: depuración:: Declarar

_ASSERTE

Similar a _ASSERT, pero incluye la expresión incorrectos en el informe generado

System:: Diagnostics:: depuración:: Declarar

_CrtCheckMemory

Confirme la integridad de los bloques de memoria asignados en el montón de depuración

System:: Diagnostics:: PerformanceCounter

_CrtDbgBreak

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.

_CrtDbgReport, _CrtDbgReportW

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

_CrtDoForAllClientObjects

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.

_CrtDumpMemoryLeaks

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.

_CrtIsMemoryBlock

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.

_CrtIsValidHeapPointer

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.

_CrtIsValidPointer

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.

_CrtMemCheckpoint

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.

_CrtMemDifference

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.

_CrtMemDumpAllObjectsSince

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.

_CrtMemDumpStatistics

Vuelque la información de encabezado de depuración para un estado especificado de la memoria en un formulario usuario-legible

System:: Diagnostics:: PerformanceCounter

_CrtReportBlockType

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.

_CrtSetAllocHook

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.

_CrtSetBreakAlloc

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.

_CrtSetDbgFlag

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.

_CrtSetDumpClient

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.

_CrtSetReportFile

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.

_CrtSetReportHook

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.

_CrtSetReportHook2, _CrtSetReportHookW2

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.

_CrtSetReportMode

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.

_RPT [0,1,2,3,4]

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.

_RPTF [0,1,2,3,4]

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.

_calloc_dbg

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.

_expand_dbg

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.

_free_dbg

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.

_fullpath_dbg, _wfullpath_dbg

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.

System:: IO:: archivo:: Crear

_getcwd_dbg, _wgetcwd_dbg

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.

_malloc_dbg

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.

_msize_dbg

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.

_realloc_dbg

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.

_strdup_dbg, _wcsdup_dbg

Duplica una cadena, con _malloc_dbg para asignar memoria.

System:: cadena:: clon

_tempnam_dbg, _wtempnam_dbg

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

acos, acosf

_fpclass

_nextafter

asin

_fpieee_flt

pow

atan, atan2

_fpreset

printf, _printf_l, wprintf, _wprintf_l, printf_s, _printf_s_l, wprintf_s, _wprintf_s_l*

_cabs

frexp

_scalb

ceil

_hypot

scanf, _scanf_l, wscanf, _wscanf_l, scanf_s, _scanf_s_l, wscanf_s, _wscanf_s_l*

_chgsign, _chgsignl

_isnan

setjmp

_clear87, _clearfp

_j0

sin

_control87, _controlfp, __control87_2

_j1

sinh

_copysign, _copysignl

_jn

sqrt

cos

ldexp

_status87, _statusfp

cosh

log

tan

Exp

log10

tanh

fabs

_logb

_y0

_finite

longjmp

_y1

floor

_matherr

_yn

fmod

modf

 

* 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++.

Vea también

Referencia

Rutinas de servicio por categoría

La comprobación de errores en tiempo de ejecución