Получение переменных по объему - PullRequest
0 голосов
/ 01 октября 2011

Возможно ли для функции в C ++ найти адреса всех переменных в определенной области видимости?Я говорю о таких методах, как сканирование памяти, используемой программой, или просмотр дерева разбора компилятора.Может быть, даже есть механизм, добавленный для этого в C ++ 11.

Это то, о чем я удивляюсь в течение некоторого времени, некоторые хорошие ответы будут оценены.

примечание: код должен вызываться изнутри программы.

1 Ответ

1 голос
/ 01 октября 2011

Это то, что могут делать все отладчики, поэтому я думаю, что программа могла бы получить такой уровень самоанализа, если она скомпилирована с отладочной информацией и может каким-то образом анализировать свою собственную таблицу символов.

В этом проекте реализован анализ отладочной информации для генерации самоанализа класса для C ++.Я думаю, что тот же подход будет работать для ваших целей.

Кроме того, я сомневаюсь, что это будет возможно, если вы скомпилируете с оптимизацией, так как оптимизатор может изменить ваш код настолько, чтобы сопоставление отдельных переменных в исходном кодеячейки памяти не существуют.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...