Форум: "Прочее";
Текущий архив: 2016.07.24;
Скачать: [xml.tar.bz2];
ВнизКак узнать где зациклилась программа? Найти похожие ветки
← →
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;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.005 c