У меня есть огромная программа (проект VS), которая содержит глобальную переменную. Модифицируется из сотен мест. На самом деле это стандартный контейнер STL (std::vector), и вопрос в том, как я могу отслеживать модификации этой конкретной переменной? В своей работе использую отладчик VS (Prof 2017 15.9.5)
Есть несколько решений, которые приходят мне на ум:
Создайте еще один класс, который будет инкапсулировать этот вектор. Затем разрешите пользователям использовать этот вектор, добавив геттер, возвращающий ссылка на него. Затем вы можете поставить точку останова в геттере.
Установите точку останова памяти на одном из членов vector
, но это решение для конкретной формы растения, которое может работать не во всех сценариях.
Замените std::vector
своим пользовательским типом с интерфейсом, идентичным интерфейсу std::vector
, который будет использовать оригинальный std::vector
внутри.
С помощью этого решения вы можете более точно контролировать доступ.
P.S. удалите этот глобальный как можно скорее.
Спасибо, Михал. Я уже подумал о обертке, это возможно. Я также пытался использовать точку останова в памяти, но по некоторым причинам VS Debug-> New Breakpoint-> Data Breakpoint отключен в моем проекте.