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

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

Как отловить причину закрытия программы? [D7, XP, 2003]


SkyN ©   (2009-08-24 13:54:00) 

Программа просто выгружается из памяти.
Application.OnException для данной ошибки не записывает в лог ничего.
По всей видимости, ошибка происходит не в основном потоке.
В событиях windows для приложений вижу: "Ошибка приложения project1.exe, версия 0.0.0.0, модуль project1.exe, версия 0.0.0.0, адрес 0x0007752c."

Как найти строку кода, в которой происходит ошибка?


SkyN   (2009-08-24 14:35:00) [1]

спасибо!


Сергей М.   (2009-08-24 14:27:00) [2]


> Этого не достаточно?


Конечно нет.
Это перехват исключений основного потока.


> Куда копать?


procedure TMyThread.Execute;
begin
 try
...
 except
   on e:Exception do ..
 end;
end;


SkyN   (2009-08-24 14:15:00) [3]


 MyException = class
   class procedure ErrorCatch(Sender : TObject; Exc : Exception);
 end;

class procedure MyException.ErrorCatch(Sender : TObject; Exc : Exception);
begin
 try
   Error('Exception: ClassName='+Exc.ClassName + ' Message='+Exc.Message + ' Sender='+sender.ClassName);
 except
 end;
end;

процедура Error - пишет в лог-файл данную строку. Работает исправно, проверенно многократно :)


clickmaker   (2009-08-24 14:10:00) [4]

> MyException.ErrorCatch

а что это?


SkyN   (2009-08-24 14:05:00) [5]


> Что мешает контролировать исключения не только в основном,
>  но и в дополнительных потоках ?

Куда копать?
Сейчас юзаю Application.OnException := MyException.ErrorCatch;. Этого не достаточно?


Сергей М.   (2009-08-24 14:01:00) [6]


> ошибка происходит не в основном потоке


Что мешает контролировать исключения не только в основном, но и в дополнительных потоках ?


SkyN   (2009-08-24 13:59:00) [7]

> запустить под отладчиком?
ошибка плавающая, происходит у конечных пользователей, я пока воспроизвести её не смог


clickmaker   (2009-08-24 13:57:00) [8]

> Как найти строку кода, в которой происходит ошибка?

запустить под отладчиком?


Наверх

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