Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
nexen
187 / 180 / 3
Регистрация: 27.01.2012
Сообщений: 1,335
#1

Как определить зацикливание процесса? - C++

17.11.2013, 13:31. Просмотров 377. Ответов 2
Метки нет (Все метки)

Собственно, сабж в названии. Как определить, что некоторая программа другого процесса зациклилась? Или, допустим, имея свой процесс и полный лог того, что происходит в нём (выделение памяти, вызов любой функции и т.д), определись, что программа вошла в бесконечный цикл из-за возникшей где-то ошибки, хотя не должна была?

Помимо очевидного способа взять контекст из ~100 вызовов и проверять, пошли ли вызовы по второму кругу, но при этом состояния переменных не изменились?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.11.2013, 13:31     Как определить зацикливание процесса?
Посмотрите здесь:

C++ Зацикливание
зацикливание в C++ C++
C++ Как избежать зацикливание ввода не числа?
C++ Зацикливание в меню, как исправить?
Зацикливание Функции C++
зацикливание C++
Зацикливание C++
Зацикливание C++
C++ Scanf зацикливание
C++ Как наиболее быстро определить зацикливание связанного списка? (a => b => c => d => e => a)
Зацикливание C++
C++ Cin.get() зацикливание while()

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Tulosba
:)
Эксперт С++
4384 / 3227 / 297
Регистрация: 19.02.2013
Сообщений: 9,044
17.11.2013, 14:29     Как определить зацикливание процесса? #2
Бесконечный цикл - это может быть вполне нормальная ситуация для программы. Взять любую GUI программу и там будет бесконечный цикл обработки сообщений пользователя/системы. Просто надо в контрольных точках получать ответы на служебные сообщения, если ответов нет, значит программа ходит по каким-то другим участкам кода и, вероятно, можно считать, что она зациклилась, т.к. такая ситуация не нормальна.
OhMyGodSoLong
~ Эврика! ~
 Аватар для OhMyGodSoLong
1242 / 991 / 42
Регистрация: 24.07.2012
Сообщений: 2,002
17.11.2013, 14:39     Как определить зацикливание процесса? #3
В общем случае и достоверно — никак. Проблема остановки же.

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

Так что единственный вариант — это как-то определить, что программа выдаёт ошибочные данные (работает неправильно). Не используя при этом эту же программу.
Yandex
Объявления
17.11.2013, 14:39     Как определить зацикливание процесса?
Ответ Создать тему
Опции темы

Текущее время: 21:42. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru