Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Access violation... [D7, XP, 2003]


Страницы:   1 2

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]

Что бы выполнила еще несколько недопустимых действий, шутник однако.


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо