Этот вопрос в некоторой степени связан с , который я задал ранее на этой неделе .Я все еще имею дело с неспособностью C ++ правильно обдумать свой собственный код.Теперь, когда я наткнулся на несколько библиотек, которые каким-то образом пытаются добавить эту функциональность, я хотел бы спросить, нельзя ли добиться того, что мне нужно сделать, используя более легкодоступные и широко используемые (т.е. более простые в реализации) методы.
Что мне нужно, так это в основном снимок экземпляров объекта в определенный момент времени.Они могут иметь подобъекты (то есть некоторую структуру, в которой объект «имеет» один или несколько других объектов), но это в основном все.Теперь, когда рефлексия казалась очевидным выбором, это было в значительной степени исключено из-за того, что проекты всегда кодируются на C ++.Тем не менее, кажется, что отладчик делает именно то, что мне нужно (остановите программу в определенный момент и расскажите мне об экземплярах, находящихся в данный момент в памяти), поэтому я чувствую, что должен быть в состоянии добиться некоторого извлечения информации, используя простые методы отладки, каккод данных проектов можно считать доступным.Рабочий процесс в моей программе может выглядеть как
- компиляция кода C ++ в режиме отладки
- создание и подключение отладчика
- установка точки останова (как я знаю вызов метода, который указываетчтобы все необходимые экземпляры были созданы)
- запустить и проверить экземпляры (и подэкземпляры) определенного класса (и его унаследованных типов), извлечь эту информацию для дальнейшей обработки
Хотя это в основном то, что я обычно делаю во время отладки, я не смог найти никакой информации о том, как сделать это автоматически из другой программы.Это имело бы преимущество в виде ограниченного отражения без каких-либо дополнительных библиотек или изменений кода.Итак, есть ли какой-либо способ - предпочтительно в Java, C # или C ++, как я с ним наиболее знаком, - просто загрузить и скомпилировать решение VS или выполнить make-файл и выполнить действия, описанные выше?Я постоянно нахожу множество страниц, которые рассказывают мне, как использовать отладчик, но это действительно бесполезно ...
Спасибо за любую помощь.