Foros del Web » Programación para mayores de 30 ;) » C/C++ »

problemas usando un tracer de memory leaks simple

Estas en el tema de problemas usando un tracer de memory leaks simple en el foro de C/C++ en Foros del Web. Hola amigos. Tengo una pequeña clase que conseguí que sirve para hacer trace de la memoria, de los news, para poder al final saber qué ...
  #1 (permalink)  
Antiguo 25/05/2011, 02:34
Avatar de darkgaze  
Fecha de Ingreso: febrero-2006
Ubicación: Madrid, España
Mensajes: 462
Antigüedad: 18 años, 11 meses
Puntos: 2
problemas usando un tracer de memory leaks simple

Hola amigos.

Tengo una pequeña clase que conseguí que sirve para hacer trace de la memoria, de los news, para poder al final saber qué ha quedado en la memoria como memory leaks, y ver dónde me faltan los delete.

EL problema es que comienza así:

Código:
#ifndef TRACER_H
#define TRACER_H

//to be copied to the first .h you want to trace.
/*#define _DEBUG

#ifdef _DEBUG
#define DEBUG_NEW new(__FILE__, __LINE__)
#else
#define DEBUG_NEW new
#endif
#define new DEBUG_NEW
*/

#include <new>
#include <cstdlib>
#include <list>
#include <iostream>
#include <stdio.h>
#include <string.h>

/**
* Replaces the usual new operator, allowing to trace memory leaks.
* \param size the amount of memory being reserved.
* \param file the file in which the allocation takes place.
* \param line the line of the file in which the allocation takes place.
*/
void* operator new(size_t size,const char *file, int line);
/**
Es decir, pone que hay que añadir unas definiciones:

#define _DEBUG

#ifdef _DEBUG
#define DEBUG_NEW new(__FILE__, __LINE__)
#else
#define DEBUG_NEW new
#endif
#define new DEBUG_NEW


En el primer archivo de cabecera en el que queramos empezar.

EL problema es que me dice undefined operator new. En todas partes, incluso en el archivo h en el que he incluido este texto.

No se mucho de ifdef. Pero me da la sensación que lo que pasa es que no sabe dónde esta el archivo con el new. Qué hay que hacer? Incluirlo también en todas partes el .h para que sepan donde está la implementacion?. Tengo varias carpetas y esta clase del simpletracer la metí en utilidades/simpleTracer.h
...

a ver si me podéis echar una mano.
__________________
Darkgaze
  #2 (permalink)  
Antiguo 25/05/2011, 02:37
Avatar de darkgaze  
Fecha de Ingreso: febrero-2006
Ubicación: Madrid, España
Mensajes: 462
Antigüedad: 18 años, 11 meses
Puntos: 2
Respuesta: problemas usando un tracer de memory leaks simple

He intentado incluir


#include "../utilidades/simpleTracer.h"

en este primer h donde he puesto esto (que se supone que es el padre de todos). Para probar, y resulta que me empiezan a salir errores en implementacion de c++. En c++locale.h

Madre mía. y como hago para que solo sirva para mis clases? o esto lo que hace es que hace desaparecer todos los news... pero como hago para que solo sirva para mis clases?.


Gracias
__________________
Darkgaze

Etiquetas: c++
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 01:05.