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

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

Восстановить пароль Регистрация
 
nexen
187 / 180 / 3
Регистрация: 27.01.2012
Сообщений: 1,335
17.11.2013, 13:31     Как определить зацикливание процесса? #1
Собственно, сабж в названии. Как определить, что некоторая программа другого процесса зациклилась? Или, допустим, имея свой процесс и полный лог того, что происходит в нём (выделение памяти, вызов любой функции и т.д), определись, что программа вошла в бесконечный цикл из-за возникшей где-то ошибки, хотя не должна была?

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

C++ Зацикливание
зацикливание в C++ C++
C++ Как избежать зацикливание ввода не числа?
C++ Зацикливание в меню, как исправить?
зацикливание C++
Зацикливание C++
Зацикливание C++
C++ Как задать описание процесса?

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

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

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

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

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