| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: Общие вопросы > Зависание программы и проекта |
| Автор: Keeper89 23.6.2009, 14:27 | ||||
| Доброго времени суток! Работаю над проектом, D2007, дома все прекрасно - компилируется и работает. На работе же зависает (приходится ждать загрузки формы очень долго) как экзешник, так и сам проект (при открытии главной формы), либо экзешник открывается с ошибками, которых дома не было. Зависание происходит при перерисовке ShellControls на форме (сужу потому, что они не перерисовываются до конца). Часть методов ShellControls (ShellTreeView и ShellListView) была переопределена, но даже если их убрать лучше не становится. Убрать все из события загрузки формы тоже пробовал. Вот что выдает EventLog (может есть за что зацепится в нем, каждая строка выполнялась секунд 10):
Вот внутренний лог ошибок:
В чем предположительно может быть проблема? Заранее спасибо. |
| Автор: bems 23.6.2009, 17:34 |
| смотри что у тебя по адресу 004D26A9 |
| Автор: CodeMonkey 23.6.2009, 19:33 |
| Обращения к VCL из других потоков? Расскажите хоть что-то про программу-то. Код можно привести. А на пустом месте гадать.... 1001 причину назвать можно, только вам, что 1000, что 1001 - всё одно. |
| Автор: Keeper89 23.6.2009, 19:56 | ||
CodeMonkey, программа - подобие проводника Windows с небольшими дополнениями. Основная часть реализуется связкой ShellTreeView + ShellListView, потоки не используются, только переопределение некоторых сообщений, что как я говорил не влиет если их убрать.
|
| Автор: bems 23.6.2009, 22:09 | ||
Ну вот и ищи, как в ebx оказываеся 0, и что там должно быть при нормальном выполнении |
| Автор: dumb 23.6.2009, 22:14 |
| запусти на выполнение путем нажатия F7, поставь точку останова на вышеупомянутый адрес(или просто поставь строку выделения на этот адрес), потом Ctrl-V(View source), и смотри, где там у тебя нулевой указатель. |
| Автор: dumb 23.6.2009, 23:13 |
| возможно адрес того сбойного места изменился(может опции какие-нибудь поменял или еще что) - посмотри, exception по тому же адресу выбрасывает?. а в Ctrl-G разве не надо $ перед адресом ставить? |
| Автор: Keeper89 23.6.2009, 23:23 |
поставил с $, все отлично но ошибок не выдает. Еще раз повторюсь, дома все работает без эксепшнов и зависаний. Вот в чем и проблема. |
| Автор: kami 23.6.2009, 23:39 | ||
Смотри, что за паскалевская строка в этом месте (как сказал dumb, Ctrl-V на этом адресе) и уже от этого пляши дальше. Добавлено через 1 минуту и 6 секунд где-то там возникает ситуация, при которой идет обращение к nil вместо действительного объекта(или другого указателя). |
| Автор: Keeper89 24.6.2009, 10:48 |
| Нажимаю контрол+в, к участку кода не перемещается. Заметил следующее - если убрать все шелл контролы, проект зависать перестает (на работе, дома всегда все ок). |
| Автор: Rennigth 24.6.2009, 11:01 |
| Keeper89, 1. Винды разные? 2. На сколько тебе критично использовать именно ShellTreeView + ShellListView? Может можно обойтись VirtualTreeView-шкой? 3. Если критично использовать именно их, то попробуй их попользовать вообще на чистом проекте, может они в связке в другими контролами при определенных условиях не ладят... |
| Автор: CodeMonkey 24.6.2009, 12:03 |
| Пробуем включить Use Debug DCUs, сделать Build и повторить остановку на исключении. Также сразу после остановки смотрим окно Call Stack. http://gunsmoker.blogspot.com/2009/05/access-violation.html. А вот это вот что значит? |
| Автор: Keeper89 24.6.2009, 14:01 | ||||
1. Нет XP, SP3 оба. 2. Не критично, главное обеспечивать "функциональность" проводника, может есть компоненты стабильнее используемых мной, но не такие громоздкие и легче для перехода (это все ИМХО конечно), чем http://www.mustangpeak.net/? 3. Дома чистый проект в связке работает как и готовый проект нормально, на работе же зависает прямо в IDE. IDE зависает при помещении на форму этих самых ShellControls.
Все выставил - все равно никаких исключений. |
| Автор: CodeMonkey 24.6.2009, 16:23 |
??? Не понял. А в логе вашем не исключения, что-ли, пишутся? |
| Автор: Keeper89 24.6.2009, 18:08 |
Это пишется на рабочих компьютерах. На одном зависает ГУИ как я сказал, еще на одном в лог заносятся указанные ошибки. Дома ничего подобного нет. |
| Автор: CodeMonkey 24.6.2009, 21:34 |
| Ну так и проверяйте на машинах, где есть проблема. Если не стоит Delphi - поставьте хотя бы удалённый отладчик. |
| Автор: dumb 25.6.2009, 00:44 |
| http://forum.vingrad.ru/forum/topic-231665.html |
| Автор: CodeMonkey 25.6.2009, 10:52 |
| Тогда уж и: http://forum.vingrad.ru/index.php?showtopic=235599&view=findpost&p=1694019 ;) |