Форум: "Начинающим";
Текущий архив: 2008.07.27;
Скачать: [xml.tar.bz2];
ВнизAccess violation... Найти похожие ветки
← →
Yury (2008-06-28 10:04) [0]Вообщем есть такая проблема: программа работает 8 часов в день, 5 дней в неделю, бывает, непонятно при каких обстоятельствах, программа зависает и винда выдает "Access violation.... Программа выполнила недопустимую ошибку и будет закрыта...". Подскажите как из Делфи отследить, что программа зависла, хотелось бы, что бы при зависании она выполнила кое-какие действия...
← →
Anatoly Podgoretsky © (2008-06-28 10:17) [1]> Yury (28.06.2008 10:04:00) [0]
Что бы выполнила еще несколько недопустимых действий, шутник однако.
← →
Yury (2008-06-28 10:24) [2]что ничего нельзя сделать?
← →
KSergey © (2008-06-28 11:02) [3]Первое. Запомните: не "винда выдает", а ваша прорамма!
Второе: очевидно, что в программе есть ошибка.
Третье: посоветьвать тут можно тольо одно: вести логирование и в случае краха программы медитировать над логами, пытаясь понять где кроется ошибка.
← →
KSergey © (2008-06-28 11:02) [4]Ну т.е. в п.3 я исхожу из предположения, что программа до краха работает достаточно продолжительное время.
← →
Anatoly Podgoretsky © (2008-06-28 11:04) [5]> Yury (28.06.2008 10:24:02) [2]
А сколько раз надо выполнить недопустимых действий?
Вот столько раз и запусти свою поделку и будет тебе счастье.
← →
Anatoly Podgoretsky © (2008-06-28 11:31) [6]> 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:32) [7]Забыл добавить, включить проверку диапазонов и переполнения.
← →
KSergey © (2008-06-28 11:41) [8]> Anatoly Podgoretsky © (28.06.08 11:32) [7]
> Забыл добавить, включить проверку диапазонов и переполнения.
К стати очень здраво.
Правда, тогда возможен плач по поводу других ошибок :)
← →
Anatoly Podgoretsky © (2008-06-28 11:45) [9]> KSergey (28.06.2008 11:41:08) [8]
А что делать, писать то надо прямо или плакать.
← →
salexn (2008-06-28 11:50) [10]Как вариант использовать либо Madshi либо EurekaLog для логирования эксепшена. В лог запишет строку где валится и еще много полезной информации.
← →
Yury (2008-06-28 12:42) [11]
> Третье: посоветьвать тут можно тольо одно: вести логирование
> и в случае краха программы медитировать над логами, пытаясь
> понять где кроется ошибка.
а как вести логирование?
← →
KSergey © (2008-06-28 13:17) [12]Открыть текстовый файл - и вперед, писать в него служебную информацию
Какую - тут уж каждый сам решает что ему надо для локализации ошибки.
Только файл лучше открыть с небуферированной записью. А то при крахе потеряем как раз самое интересное - конец лога
← →
Yury (2008-06-28 13:19) [13]лог как раз пишеться, только в нем ничего по ошибке нет, а как включить небуферированную запись?
← →
KSergey © (2008-06-28 13:20) [14]> Yury (28.06.08 13:19) [13]
> лог как раз пишеться, только в нем ничего по ошибке нет,
Так а нафига ж такой лог тогда нужен?? ПО башке автору такого лога.
К стати, вот же рядом
http://www.delphikingdom.com/asp/viewitem.asp?catalogid=168
← →
Yury (2008-06-28 13:29) [15]в логе протоколируется все что делает программа, в том числе и ошибки, кот. она обработала, а вот как записать еще и то, что происходит в момент зависания?
← →
Yury (2008-06-28 13:30) [16]
> К стати, вот же рядомhttp://www.delphikingdom.com/asp/viewitem.
> asp?catalogid=168
что-то ничего толкового я здесь не нашел...
← →
DrPass © (2008-06-28 13:37) [17]
> Подскажите как из Делфи отследить, что программа зависла,
> хотелось бы, что бы при зависании она выполнила кое-какие
> действия...
MadExcept, EurekaLog
← →
Palladin © (2008-06-28 13:41) [18]
>Yury
смирись... судьба у тебя такой... не хочешь делать ревизию когда, смирись
← →
Yury (2008-06-28 13:45) [19]
> MadExcept, EurekaLog
так это за деньги, а чтобы бесплатно... :-)
← →
KSergey © (2008-06-28 14:03) [20]Я вот не пойму
Автор желает, чтобы в логе написалось "ошибка там-то в том-то"?! Так чтоли??
← →
Ляпа (2008-06-28 14:05) [21]http://reestr.hotmail.ru/publik/watson.htm
← →
Anatoly Podgoretsky © (2008-06-28 14:16) [22]
> а вот как записать еще и то, что происходит в момент зависания?
Шутник
← →
umbra © (2008-06-28 14:58) [23]
> не использовать указателей и связыных (обвязаных ) с ними
> неестественных действий.
интересно, а как тогда программу писать? там же ж одни указатели :)
← →
Yury (2008-06-28 15:03) [24]
> Я вот не поймуАвтор желает, чтобы в логе написалось "ошибка
> там-то в том-то"?! Так чтоли??
ага, можно такое сделать?
← →
KSergey © (2008-06-28 15:13) [25]Можно.
А там - "Или ишак сдохнет или султан помрёт"
← →
Anatoly Podgoretsky © (2008-06-28 15:16) [26]> umbra (28.06.2008 14:58:23) [23]
Не путай типизированые указатели, ака string/class с нетиризироваными.
← →
DrPass © (2008-06-28 16:38) [27]
> Yury (28.06.08 13:45) [19]
>
> > MadExcept, EurekaLog
>
> так это за деньги, а чтобы бесплатно... :-)
MadExcept для некоммерческого использования бесплатен. А если тебе для коммерческого - то не такой уж он и дорогой, а в хозяйстве довольно полезен.
Ну а в конце-концов, если тебе надо делать какие-то действия после AV, добавь их в обработчик Application.OnException. Может быть, тебе этого будет достаточно
← →
Игорь Шевченко © (2008-06-28 22:00) [28]JclDebug из JCL - совсем бесплатно
← →
Плохиш © (2008-06-29 01:27) [29]Удалено модератором
← →
Германн © (2008-06-29 01:32) [30]Удалено модератором
← →
Плохиш © (2008-06-29 01:35) [31]Удалено модератором
← →
Германн © (2008-06-29 01:42) [32]Удалено модератором
← →
Johnmen © (2008-06-29 01:43) [33]Удалено модератором
← →
Германн © (2008-06-29 01:51) [34]Удалено модератором
← →
Германн © (2008-06-29 01:52) [35]Удалено модератором
← →
Johnmen © (2008-06-29 02:09) [36]Удалено модератором
← →
Германн © (2008-06-29 02:30) [37]Удалено модератором
← →
KSergey © (2008-06-29 11:40) [38]мда.. пообщались...
Автор, полегчало хоть?
← →
Yury (2008-06-30 09:38) [39]всем спасибо, заюзал EurekaLog, думаю помогет!
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2008.07.27;
Скачать: [xml.tar.bz2];
Память: 0.53 MB
Время: 0.006 c