| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: Общие вопросы > Проект вызвал исключение EStackOverflow |
| Автор: VTK 10.11.2006, 10:17 |
| Проект вызвал исключение EStackOverflow с сообщением 'Stack Overflow' как решить проблему??? Пытался увеличить значение минимального и максимального стека в меню проекта, но проблема этими манипуляциями не решена... Но такая ошибка появляется только при добавлении на форму Qreport и QRChart, если эти компоненты добалять на другой проект - все компилируется нормально.... Как быть??? Добавлено @ 10:19 Забыл добавить, что такая проблема возникает если в дельфе установлен TeeChart 6, если его не стоит - все нормально... |
| Автор: VTK 10.11.2006, 10:55 |
| Извините за тупость... А какой ответ-то??? |
| Автор: JUmPER 10.11.2006, 11:26 |
| не ставить TeeChart6 =) |
| Автор: Alexeis 10.11.2006, 13:46 |
| VTK, в какой момент это происходит? |
| Автор: Rennigth 10.11.2006, 14:02 |
VTK, Какой вопрос - такой ответ. Если во время компиляции... Build Project пробовал? |
| Автор: VTK 10.11.2006, 15:13 |
| Ну попробовал Build Project, но чего-то ничего особенного он мне не сказал... |
| Автор: Alexeis 10.11.2006, 16:48 | ||
Тогда нужно пошагово отлаживать, до тех пор пока не будет найдена строка вызывающая исключение... (поставить бряк, FormCreate и F8 в помощь |
| Автор: VTK 13.11.2006, 09:25 |
| Я это уже пробовал, но моего опыта не хватает, чтобы отследить ошибку.... |
| Автор: Alexeis 13.11.2006, 09:54 | ||
Ну тогда есть как минимум 3 выхода 1) Продолжать дальше дебажить, до определения места исключения. 2) Выложить тут проект, чтобы мы смогли это сделать самостоятельно. 3) Обратится к экстрасенсу, чтоб он на расстоянии определил где ошибка. |
| Автор: VTK 13.11.2006, 10:19 |
| Вариантс экстрасенсом явно не подходит! Вложить сюда проект тоже вряд ли выдет из-за избыточного размера архива. alexeis1, послал тебе на мыло, могу выслать всем желающим помочь... |
| Автор: Alexeis 13.11.2006, 17:33 |
| Так экзешник зачем было архивировать, если кто-то будет дебажить, то все равно прийдется компилировать, так что в данном случае он был лишним весом. ------------------------------------------------------------ Выкладываю архив |
| Автор: VTK 14.11.2006, 14:20 |
| Путем многочисленных иттераций процесса компиляции выяснилось, что сообщение вылетает во время создания формы на которой расположен объект QReport и QRChart, на том шаге, когда компонентам QReporta присваиваются адреса ячеек памяти.... Если у кого есть мысли, прошу высказываться! |
| Автор: VTK 14.11.2006, 15:25 |
| Попробовал увеличить размер стека директивой {$M 16384,2147483647}, однако вылезла ошибка "Не в состоянии создать процесс: параметр задан неправильно", но в Drkb черным по белому написано, что максимальный размер стека равен 2147483647 |
| Автор: Matematik 14.11.2006, 15:32 | ||
Больную голову лечишь топором Лучше бы искал кто стек переполняет. |
| Автор: VTK 14.11.2006, 15:45 |
| Я это и так знаю, QRChart, но без него не могу.... Увеличил размер максимального стека до {$M 16384,536870912} - проблема не решена!!! |
| Автор: Rennigth 14.11.2006, 16:23 | ||
И не будет. Разницы никакой если у тебя кто-то болеет бесконечной рекурсией. Ты лутше найди кто... PS: Могу ошибаться, но мои телепатические способности почему-то подсказывают мне что причину ты найти не можешь по причине того что дебажишь ты без "debug dcu", в Project options -> Compiler галку поставь. |
| Автор: Matematik 14.11.2006, 16:30 |
| Может всетаки в программе ошибка, а эти компоненты становятся последней каплей, которая переполняет стек. |
| Автор: VTK 14.11.2006, 17:26 | ||
Зарылся дальше, выяснилось, что ошибка вылетает во время исполнения кода unit Classes в процедуре:
на строке for I := 0 to G.Count - 1 do TComponent(G[I]).Loaded; когда i=125... Кому-нибудь это что-то говорит??? |
| Автор: VTK 15.11.2006, 10:20 | ||
А вот видимо и ответ:
Значит нечего сделать нельзя??? |
| Автор: Vladimir_ 8.12.2009, 16:29 | ||
| Здравствуйте, У меня такая ситуация: нет рекурсий; нет функций, в которой бы я передавал параметры и вызывал ее часто, все крутится в одно обработчике- по нажатию кнопки вот обработчик :
в самом первом vare описал массив : arr: Array [1..3,1..100000] of real; Я и все realы заменил extendedами.... уверен что зацикливания не происходит, т.к если я поставлю размер выборки не 50 а допустим 5-10, шаг обучения 0,1 и среднеквадратичную ошибку 0,1 - отработает без проблем, сообственно это было пояснение к моей программе, которая прилагается.... Обьясните в чем казус,что нужно сделать ,чтобы исправить ситуацию, спасибо! |