2013-09-02 3 views
0

У меня есть глобальная переменная счетчика в c projet.Как остановить выключение в затмении при выполнении условия

Это увеличит из желательных пределов,

, но я не могу найти строку увеличения.

Есть ли способ провести выполнение на линии, где эта переменная выше X?

Я могу получить адрес переменной памяти.

+0

Обычно у вас будет всего несколько строк, где эта переменная увеличивается. Если нет, рассмотрите инкапсуляцию и предоставите некоторые функции доступа. Широко используемые глобальные переменные - это беспорядок, с которым можно работать. Некоторые компиляторы предоставляют возможность размещения точек останова памяти, которые срабатывают при изменении данных на определенном адресе. –

+0

'Некоторые компиляторы предоставляют возможность помещать точки останова памяти, которые запускаются при изменении данных на определенном адресе.' Gcc в eclipse делает это? –

ответ

0

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

GDB, который является отладчиком для GCC, поддерживает так называемые точки наблюдения.

Вы можете найти описание here, как установить их в командной строке GDB. Вы можете также переключать эти точки наблюдения в Eclipse (возможно, зависит от используемой вами версии Eclipse). This blog post рассказывает вам, как это сделать.

Если вы не установили GDB (интересно, каким будет ваш отладчик), there is a SO post covering the installation.

0

Если он глобальный, и вы не знаете, как он растет, нажмите ctrl + h, найдите имя переменной и посмотрите, где он находится. Возможно, что-то еще где-то меняет его, и у вас нет никаких подсказок. В целом использование глобалов - очень плохая идея. Лучший способ следить за ним, чтобы использовать некоторую процедуру, которая является единственным, кто может получить доступ к счетчику, а затем в этой функции сравнить его с X.

+0

Я согласен, но это огромный код, и у меня нет времени на реорганизацию банкомата. Я попытался ctrl + h его и так много экземпляров. Разве нет встроенного способа паузы при условии в затмении? –

+0

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

Смежные вопросы