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