Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: слежка за переменной  (Прочитано 3481 раз)
0 Пользователей и 1 Гость смотрят эту тему.
zuuuuk
Постоялец

ru
Offline Offline

« : 30-01-2011 16:03 » 

Доброго времени суток.

У меня возникла неординарная задача.
Мне необходимо отследить операции с переменной. Точнее, запись и чтения из нее.

Есть код, который нельзя изменять. В нем есть переменная, за которой нужно следить.
Я себе могу представить, как определить момент записи. (создать пOток и следить, изменилась ли переменная, или нет)
А как отследить момент чтения из нее?

« Последнее редактирование: 31-01-2011 08:50 от Sel » Записан
Finch
Спокойный
Администратор

il
Offline Offline
Пол: Мужской
Пролетал мимо


« Ответ #1 : 30-01-2011 16:17 » 

Средствами С++ никак. Если только переменную не заведеш в protected область и доступ ей обеспечиш через гетеры и сетеры. Кстати это ошибка проектирования, если встают такие задачи.
Записан

Не будите спашяго дракона.
             Джаффар (Коша)
zuuuuk
Постоялец

ru
Offline Offline

« Ответ #2 : 30-01-2011 16:21 » 

благодарю за ответ.
Записан
zubr
Команда клуба

by
Offline Offline
Пол: Мужской

« Ответ #3 : 30-01-2011 16:38 » 

Если речь о Windows, то можно использовать DebugAPI.
Записан
lapulya
Молодой специалист

ru
Offline Offline

« Ответ #4 : 31-01-2011 00:29 » 

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

Кроме определения переменной никакой другой код менять не надо (он и так работать будет).
Записан

С уважением Lapulya
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines