![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Access violation... [D7, XP, 2003]
Yury © (2008-06-28 10:04:00)Вообщем есть такая проблема: программа работает 8 часов в день, 5 дней в неделю, бывает, непонятно при каких обстоятельствах, программа зависает и винда выдает "Access violation.... Программа выполнила недопустимую ошибку и будет закрыта...". Подскажите как из Делфи отследить, что программа зависла, хотелось бы, что бы при зависании она выполнила кое-какие действия...
Yury (2008-06-28 13:45:00) [21]
> MadExcept, EurekaLog
так это за деньги, а чтобы бесплатно... :-)
Palladin (2008-06-28 13:41:00) [22]
>Yury
смирись... судьба у тебя такой... не хочешь делать ревизию когда, смирись
DrPass (2008-06-28 13:37:00) [23]
> Подскажите как из Делфи отследить, что программа зависла,
> хотелось бы, что бы при зависании она выполнила кое-какие
> действия...
MadExcept, EurekaLog
Yury (2008-06-28 13:30:00) [24]
> К стати, вот же рядом http://www.delphikingdom.com/asp/viewitem.
> asp?catalogid=168
что-то ничего толкового я здесь не нашел...
Yury (2008-06-28 13:29:00) [25]в логе протоколируется все что делает программа, в том числе и ошибки, кот. она обработала, а вот как записать еще и то, что происходит в момент зависания?
KSergey (2008-06-28 13:20:00) [26]> Yury (28.06.08 13:19) [13]
> лог как раз пишеться, только в нем ничего по ошибке нет,
Так а нафига ж такой лог тогда нужен?? ПО башке автору такого лога.
К стати, вот же рядом
http://www.delphikingdom.com/asp/viewitem.asp?catalogid=168
Yury (2008-06-28 13:19:00) [27]лог как раз пишеться, только в нем ничего по ошибке нет, а как включить небуферированную запись?
KSergey (2008-06-28 13:17:00) [28]Открыть текстовый файл - и вперед, писать в него служебную информацию
Какую - тут уж каждый сам решает что ему надо для локализации ошибки.
Только файл лучше открыть с небуферированной записью. А то при крахе потеряем как раз самое интересное - конец лога
Yury (2008-06-28 12:42:00) [29]
> Третье: посоветьвать тут можно тольо одно: вести логирование
> и в случае краха программы медитировать над логами, пытаясь
> понять где кроется ошибка.
а как вести логирование?
salexn (2008-06-28 11:50:00) [30]Как вариант использовать либо Madshi либо EurekaLog для логирования эксепшена. В лог запишет строку где валится и еще много полезной информации.
Anatoly Podgoretsky (2008-06-28 11:45:00) [31]> KSergey (28.06.2008 11:41:08) [8]
А что делать, писать то надо прямо или плакать.
KSergey (2008-06-28 11:41:00) [32]> Anatoly Podgoretsky © (28.06.08 11:32) [7]
> Забыл добавить, включить проверку диапазонов и переполнения.
К стати очень здраво.
Правда, тогда возможен плач по поводу других ошибок :)
Anatoly Podgoretsky (2008-06-28 11:32:00) [33]Забыл добавить, включить проверку диапазонов и переполнения.
Anatoly Podgoretsky (2008-06-28 11:31:00) [34]> KSergey (28.06.2008 11:02:03) [3]
Вместо логирования можно пересмотреть код и заменить опасные конструкции безопасными.
1. не делать повторного использования переменных
2. использовать try finally
3. не использовать указателей и связыных (обвязаных ) с ними неестественных действий.
4. только managed типы
Самое правильное в его случае - это перейти на Delphi.NET (хотя бы попробовать откомпилировать под ней, что бы получить список по 1-4),
Anatoly Podgoretsky (2008-06-28 11:04:00) [35]> Yury (28.06.2008 10:24:02) [2]
А сколько раз надо выполнить недопустимых действий?
Вот столько раз и запусти свою поделку и будет тебе счастье.
KSergey (2008-06-28 11:02:00) [36]Ну т.е. в п.3 я исхожу из предположения, что программа до краха работает достаточно продолжительное время.
KSergey (2008-06-28 11:02:00) [37]Первое. Запомните: не "винда выдает", а ваша прорамма!
Второе: очевидно, что в программе есть ошибка.
Третье: посоветьвать тут можно тольо одно: вести логирование и в случае краха программы медитировать над логами, пытаясь понять где кроется ошибка.
Yury (2008-06-28 10:24:00) [38]что ничего нельзя сделать?
Anatoly Podgoretsky (2008-06-28 10:17:00) [39]> Yury (28.06.2008 10:04:00) [0]
Что бы выполнила еще несколько недопустимых действий, шутник однако.