[c++] In che modo VC ++ altera i nomi delle variabili statiche locali?



Answers

In gdb, puoi mettere un watchpoint sul nome mutilato della variabile.

Ad esempio, con questa funzione:

int f() {
    static int xyz = 0;
    ++xyz;

    return xyz;
}

Posso guardare _ZZ1fvE3xyz (come manomesso da gcc 3.2.3 o gcc 4.0.1).

Question

Ecco un codice che ho:

MyClass* MyClass::getInstance()
{
   static MyClass instance;
   return &instance;
}

Voglio esaminare i valori attuali di questo singleton. Ma attualmente sono in pausa tre ore prima dell'esecuzione, e il motivo per cui sono in pausa è che ho esaurito la memoria. Quindi non posso mettere un breakpoint in questo metodo per vedere quale sia il valore.

La mia domanda quindi è come fare riferimento a questa variabile di instance da un ambito globale. Ho provato a farlo riferimento come MyClass::getInstance::instance ma non funziona. Immagino che getInstance debba essere decorato in qualche modo. Qualcuno sa come?

Questo è in Visual Studio 2008.




Related



Tags

c++ c++   scope