Ver Mensaje Individual
  #1  
Antiguo 13-03-2009
alvarovinu alvarovinu is offline
Registrado
 
Registrado: mar 2009
Posts: 5
Reputación: 0
alvarovinu Va por buen camino
Bug en el depurador C++Builder 2007

La ejecución es correcta, pero el depurador no puede inspeccionar el elemento TDsg dsg en la siguiente situación:

#include <vcl.h>

// Incomplete definition
class TDsg;

class GVE_Graphic
{
private:
TDsg *dsg;

};
/* Error appears with any of these operators defined */
int operator==( GVE_Graphic &t1, GVE_Graphic &t2 )) { return(0 ); }
//int operator!=( GVE_Graphic &t1, GVE_Graphic &t2 ) { return(0 ); }
//int operator>=( GVE_Graphic &t1, GVE_Graphic &t2 ) { return( 0 ); }
//int operator<=( GVE_Graphic &t1, GVE_Graphic &t2 ) { return( 0 ); }
//int operator> ( GVE_Graphic &t1, GVE_Graphic &t2 ) { return( 0 ); }
//int operator< ( GVE_Graphic &t1, GVE_Graphic &t2 ) { return( 0 ); }

class TDsg
{
public:
int x;
TDsg() { x = 0; };
};

int main(int argc, char* argv[])
{
int a = 0;
TDsg dsg;
a = 1; //Breakpoint. Aquí ya no se puede inspeccionar dsg
return( 0 );
}


Al comentar el atributo (con el mismo nombre pero sin relación) de GVE_Graphic, TDsg dsg, el error desaparece y si permite inspeccionarlo (con el valor dado por la constructora x=0).

Para corroborar el bug, he depurado este mismo código con Visual C++(2008) y no me da problemas al realizar la inspección.

Alguna sugerencia?. Se ha reportado ya este error?. Como se evita?.

Muchas gracias y un saludo.
Responder Con Cita