Sprinter, meinst Du mit siluavr vielleicht simulavr? Würde ich dann mal ausprobieren. gdb ist nicht das Problem, der hat mir schon manches mal das Programmiererleben gerettet.

p_morg, so wie Du Dir das vorstellst geht es weder in C noch C++. Der Typ von a in irgendwas steht immer zur Übersetzungszeit fest. Wenn Du einen dynamischen Typ haben willst geht das in C++ über Vererbung und der Auswertung der Runtime Type Information, z.B. per dynamic_cast

Code:
class A
{
 //....
};

class B
{
 //....
};

class C : public A
{
 //....
};

class D : public A
{
 //....
};
int main()
{
   A* a = 0;
   B  b;
   C  c;
   D  d;
   a = &c;

  if (dynamic_cast<C*>a != 0 ) // das wird funktionieren, Ergebnis ist true
  {
  }

  if (dynamic_cast<B*>a != 0 ) // das nicht, das Ergebnis ist false
  {
  }

  a = &d;
  if (dynamic_cast<C*>a != 0 ) // das funktioniert jetzt nicht, Ergebnis ist false
  {
  }

  
}