У меня есть программа, написанная на C ++, для Linux, скомпилированная с -g.
Когда я запускаю его под GDB, я могу
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).
Теперь, учитывая, что моя программа скомпилирована с "-g" - есть ли способ получить доступ к этой возможности внутри самой программы?
т.е. учитывая, что моя программа скомпилирована с "-g", есть ли
std::vector<string> getStackFrame();
функция, которую я могу вызвать, чтобы получить текущий стек в текущей точке выполнения?
Учитывая указатель на объект и его тип ... могу ли я сделать
std :: vector getClassMember (имя_класса);
Я понимаю, что ответ по умолчанию - «нет, C ++ не поддерживает этот уровень самоанализа» - однако, напомним, я нахожусь на Linux, моя программа скомпилирована с «-g», и GDB может это сделать, ясно, информация там. Вопрос: есть ли API для доступа к нему?
РЕДАКТИРОВАТЬ: PS Naysers, я хотел бы увидеть причину для закрытия этого вопроса.