Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 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.007 c
15-1212731985
oldman
2008-06-06 09:59
2008.07.27
А так ли уж нужна в жизни высшая математика?


15-1212825413
Vlad Oshin
2008-06-07 11:56
2008.07.27
чем С# вкусна?


2-1214551258
lewka-serdceed
2008-06-27 11:20
2008.07.27
Проблема с получением HTML кода


15-1213172370
vajo
2008-06-11 12:19
2008.07.27
Почему-то перегружается компьютер при страте Виндовс ХР


1-1196343735
serg128
2007-11-29 16:42
2008.07.27
Как получить HWND окна зная имя номер процесса?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский