Ho un programma scritto in C++, su Linux, compilato con -g.Accesso alle informazioni sul programma che gdb vede in C++
Quando eseguo sotto gdb, posso
1) set breakpoints
2) at those breakpoints, print out variables
3) see the stackframe
4) given a variable that's a structure, print out parts of the structure (i.e. how ddd displays information).
Ora, dato che il mio programma è compilato con "-g" - C'è qualche cosa che posso accedere a questo potere all'interno del mio programma stesso?
I.e. dato che il mio programma è compilato con "-g", c'è qualche
std::vector<string> getStackFrame();
funzione posso chiamare per ottenere lo StackFrame corrente nel punto corrente di esecuzione?
Dato un puntatore ad un oggetto ed è di tipo ... posso fare
std :: vector getClassMember (class_name);
?
Mi rendo conto che la risposta predefinita è "no, C++ non supporta quel livello di introspezione" - tuttavia, ricorda che sono su linux, il mio programma è compilato con "-g" e gdb può farlo, così chiaramente l'inforamtion è lì. La domanda è: c'è qualche API per accedervi?
MODIFICA: PS Naysers, mi piacerebbe vedere un motivo per chiudere questa domanda.
Perché qualcuno dovrebbe voler chiudere una domanda perfettamente valida? –