Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2016.07.24;
Скачать: CL | DM;

Вниз

Как узнать где зациклилась программа?   Найти похожие ветки 

 
Gedevan   (2015-09-23 10:43) [0]

Писал писал программу, очень большая она получилась, и тут во время юзанья она вдруг "повисла", думаю где то случился бесконечный цикл. Но где найти не могу, обставил уже все точками останова) Если нажать на кнопку паузы то там отладка по ассемблерному коду идет и это мне ни о чем не говорит, как найти место где она колбасится?


 
кгшзх ©   (2015-09-23 11:30) [1]

скажи номер твоей планеты в тентури


 
DVM ©   (2015-09-23 11:58) [2]


> и тут во время юзанья она вдруг "повисла", думаю где то
> случился бесконечный цикл. Но где найти не могу

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


 
Rouse_ ©   (2015-09-23 19:13) [3]

Ставишь паузу бежишь по нитям и смотришь стек вызовов.
Часть нитей будет служебная и только одна из них - главной нитью приложения.
Если с первого раза стек не подхватился жми Run и опять паузу.

Как поймаешь стек основной нити - анализируй где крутишся.


 
MsGuns ©   (2015-09-24 20:53) [4]

Нити, стэки, потоки-дедлоки..
Вы уверены, что товарищу известны все эти штуки ?
Лично у меня это вызывает большие сомнения, судя по топику :)


 
manaka ©   (2015-09-24 20:56) [5]

виснет в одном и том-же месте? если да, до в коде программе в этом месте не так уж много циклов, наверное. отслеживай условие выхода из цикла и проверяй, как оно меняется. может и не в цикле дело. были случаи...


 
Сергей Суровцев ©   (2015-09-25 00:20) [6]

>MsGuns ©   (24.09.15 20:53) [4]
>Нити, стэки, потоки-дедлоки.. Вы уверены, что товарищу известны все эти штуки ?

Я не уверен, что в данном случае идти этим путем проще. Проще анализировать исходник.

>manaka ©   (24.09.15 20:56) [5]
>отслеживай условие выхода из цикла и проверяй,

Если дело реально в цикле, то скорее всего так и есть. Возможно условие зависит от неких внешних установок, изменения которых автор не предполагает, а они происходят.

>Gedevan   (23.09.15 10:43)
>Если нажать на кнопку паузы то там отладка по ассемблерному коду идет и это мне ни о чем не говорит

Не хочешь остановки ставить, выводи индикатор в цикле на экран и смотри.
(Блин, как раньше люди искали ошибки без среды программирования...)))  )

А вообще это больше напоминает сеанс коллективной телепатии.


 
Германн ©   (2015-09-25 02:14) [7]

Удалено модератором
Примечание: Создание пустых сообщений


 
TohaNik ©   (2015-09-25 20:32) [8]

Ну если действительно программа тобой написана, то наверное сначала посмотри циклы while и repead, оцени возможное количество итераций и поставь на большее бряк. Ну на рекурсии проверь. Это в лоб, а так советы выше:)


 
pavelnk ©   (2015-09-26 07:12) [9]

> Gedevan   (23.09.15 10:43) 
Уже отменили F7 и F8?


 
ВладОшин ©   (2015-09-26 17:24) [10]


> Если нажать на кнопку паузы то там отладка по ассемблерному
> коду идет

и тут идем
меню,
view callstack (ctrl+alt+s в delphi 6-7)



Страницы: 1 вся ветка

Текущий архив: 2016.07.24;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.01 c
15-1443389401
Юрий
2015-09-28 00:30
2016.07.24
С днем рождения ! 28 сентября 2015 понедельник


15-1441575002
Юрий
2015-09-07 00:30
2016.07.24
С днем рождения ! 7 сентября 2015 понедельник


15-1441149908
Юрий Зотов
2015-09-02 02:25
2016.07.24
Наиважнейшая проблема...


11-1264061698
Kitten
2010-01-21 11:14
2016.07.24
Интерпритатор скрипта


15-1444944604
Юрий
2015-10-16 00:30
2016.07.24
С днем рождения ! 16 октября 2015 пятница