_CrtSetBreakAlloc
y
div
eof
not
or
xor
TOC
Collapse the table of content
Expand the table of content
Para ver el artículo en inglés, active la casilla Inglés. También puede ver el texto en inglés en una ventana emergente si pasa el puntero del mouse por el texto.
Traducción
Inglés

_CrtSetBreakAlloc

 

Establece un punto de interrupción en un número de orden de asignación de objetos especificado (solo versión de depuración).


long _CrtSetBreakAlloc(     long lBreakAlloc  );

lBreakAlloc

Número de orden de asignación para el que se va a establecer el punto de interrupción.

Devuelve el número de orden de asignación de objetos anterior que tenía establecido un punto de interrupción.

_CrtSetBreakAlloc permite que una aplicación lleve a cabo la detección de pérdidas de memoria, mediante la interrupción en un punto concreto de la asignación de memoria y la trazabilidad del origen de la solicitud.La función usa el número de orden de la asignación de objetos secuencial asignado al bloque de memoria cuando se asignó en el montón.Cuando no se define _DEBUG, las llamadas a _CrtSetBreakAlloc se quitan durante el preprocesamiento.

El número de orden de la asignación de objetos se almacena en el campo lRequest de la estructura de _CrtMemBlockHeader, definido en Crtdbg.h.Cuando alguna de las funciones de volcado de depuración proporciona información sobre un bloque de memoria, este número aparece encerrado entre llaves, por ejemplo {36}.

Para más información sobre el uso de _CrtSetBreakAlloc con otras funciones de administración de memoria, vea Seguir las solicitudes de asignación en el montón.Para obtener más información sobre cómo se asignan, inicializan y administran los bloques de memoria en la versión de depuración del montón base, vea Detalles del montón de depuración de CRT.

Requisitos

Rutina

Encabezado necesario

_CrtSetBreakAlloc

<crtdbg.h>

Para obtener más información de compatibilidad, vea Compatibilidad en la Introducción.

Solo las versiones de depuración de las bibliotecas en tiempo de ejecución de C.

// crt_setbrkal.c
// compile with: -D_DEBUG /MTd -Od -Zi -W3 /c /link -verbose:lib -debug

/*
 * In this program, a call is made to the _CrtSetBreakAlloc routine
 * to verify that the debugger halts program execution when it reaches
 * a specified allocation number.
 */

#include <malloc.h>
#include <crtdbg.h>

int main( )
{
        long allocReqNum;
        char *my_pointer;

        /* 
         * Allocate "my_pointer" for the first
         * time and ensure that it gets allocated correctly
         */
        my_pointer = malloc(10);
        _CrtIsMemoryBlock(my_pointer, 10, &allocReqNum, NULL, NULL);

        /* 
         * Set a breakpoint on the allocation request
         * number for "my_pointer"
         */
        _CrtSetBreakAlloc(allocReqNum+2);

        /* 
         * Alternate freeing and reallocating "my_pointer"
         * to verify that the debugger halts program execution
         * when it reaches the allocation request
         */
        free(my_pointer);
        my_pointer = malloc(10);
        free(my_pointer);
        my_pointer = malloc(10);
        free(my_pointer);
}

Equivalente en .NET Framework

No es aplicable. Para llamar a la función estándar de C, use PInvoke. Para obtener más información, vea Ejemplos de invocación de plataforma.

Mostrar:
© 2016 Microsoft