Главная страница
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-1444234918
aka
2015-10-07 19:21
2016.07.24
offline переводчик для андроид


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


15-1441127797
Pavia
2015-09-01 20:16
2016.07.24
Хочу пример таблицы


3-1308474984
Oleg_teacher
2011-06-19 13:16
2016.07.24
Связаные таблицы в БД


3-1307795544
Geo
2011-06-11 16:32
2016.07.24
Каскадное обновление связных таблиц Oracle+Delphi