![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
свой SEH
ДжекиМайер © (2007-03-07 20:04:00)на каждую строчку проги
try
ехсеpt
messquack ('error hd');
end;
не поставить , а может можно и номер строчки пишет где ошибка?
Access Violation например
ДжекиМайер (2007-03-13 00:32:00) [1]да но передним Application.ShowException(E);
или не показываем уже сообщения
тоже ставил HookException в начале .dpr
и в uses модуль ставил
требуется только перехватить VA, неможет быть реад врите
и выдавать сообщение (стек и коды ошибок ненужны!!!!!!)
незнаю что из исходника выкинуть чтоб остался сам хук
и процедура куда идет сработка при тяжелой ошибке
(не try except )
JCL неканаен и много мусора(
tempmail2005@mail.ru
GrayFace (2007-03-12 16:53:00) [2]HookException надо делать в начале .dpr
> впрочем и юзание стандартного обработчика Application.OnException:=AppException; дает тот же результат!
Дак там же Application.Terminate стоит!
ДжекиМайер (2007-03-12 16:31:00) [3]JCL непрбывал , читал отзывы что от туда вобще ниче не выдрать
это пробывал http://home.earthlink.net/~akonshin/files/DebugUtils.zip
trubin (2007-03-12 15:05:00) [4]
> посмотрел ту штуковинку
Какую из JCL ?
Покажи свое мыло, скину модуль, в который когда-то написал для работы с "той штуковиной"
ДжекиМайер (2007-03-12 10:39:00) [5]посмотрел ту штуковинку
попробывал D6 WIN200
procedure TForm1.FormCreate(Sender: TObject);
begin
//Application.OnException:=AppException;
DebugUtils.HookException(PrintToConsoleAndODS);
procedure TForm1.AppException(Sender: TObject; E: Exception);
begin
Application.ShowException(E);
Application.Terminate;
end;
procedure TForm1.Button1Click(Sender: TObject);
var
a:^dword;
begin
a^:=222;
никаких окон - при нажатии на кнопку - приложение как будно сделало halt;
впрочем и юзание стандартного обработчикаApplication.OnException:=AppException;дает тот же результат!
требуется только перехватить VA, неможет быть реад врите
и выдавать сообщение (стек и коды ошибок ненужны!!!!!!)
незнаю что из исходника выкинуть чтоб остался сам хук
и процедура куда идет сработкапри тяжелой ошибке
(не try except )
GrayFace (2007-03-11 17:21:00) [6]В Access Violation идет адрес ошибки. По нему без проблем востанавливается строка: Запискаешь, жмешь Ctrl+Alt+C, там Ctrl+G, вводишь адрес в форме $123456, в контекстнос меню "Show Source Line" или типа того.
http://www.delphimaster.ru/cgi-bin/forum.pl?id=1172580809&n=3
ДжекиМайер (2007-03-11 13:43:00) [7]зачем пишут что этот обработчик ловит все
что не ловится секцией try-except ?
ДжекиМайер (2007-03-11 11:28:00) [8]нет просто заткнуть системные мессаги в проге которую надо отдать
пока я разбираюсь с Jedi Code Library со своим вариантом
Германн (2007-03-11 01:32:00) [9]
> ДжекиМайер (11.03.07 00:51) [12]
Тебе это нужно для "приобретения знаний и/или опыта в программировании"? Или есть реальная потребность по работе?
Если первое, то читай (справку, исходники поставляемые с Дельфи и т.д.). Если второе, то вспомни мой совет в [1].
ДжекиМайер (2007-03-11 00:51:00) [10]почему не ловит ?,
пока временно заткнул так
procedure TForm1.FormCreate(Sender: TObject);
Application.OnException:=ApplicationEvents1Exception;
procedure TForm1.ApplicationEvents1Exception(Sender: TObject;
E: Exception);
showmessage('тяжелое!');
Application.Terminate;
проверяю так - ожидаю увидеть свое сообщение
var
p:^dword;
begin
p^:=3333;
но не перехватывает а показывает виндовское - память не может быть рэад
ДжекиМайер (2007-03-09 14:46:00) [11]спасибо гляну
trubin (2007-03-09 12:12:00) [12]На RSDN есть статья "Локализация ошибок в приложениях Delphi c помощью библиотеки Jedi Code Library". Я пользуюсь, достаточно удобно.
Плохиш (2007-03-09 11:21:00) [13]
> Сергей М. © (09.03.07 09:21) [8]
> А чем оправдана эта "ловля блох" ?
Я знаю - отсутствием желания знакомиться со встроенным отладчиком ;-)
Сергей М. (2007-03-09 09:21:00) [14]
> раздуется моя прога ?
А чем оправдана эта "ловля блох" ?
ДжекиМайер (2007-03-09 09:15:00) [15]так забьем,
а много ли памяти жрет ? и места в коде
конструкции
try
except
end;
в критических местах (поинтеры, ввод-вывод), скажем если таких конструкций
будет 200 штук раздуется моя прога ?
Германн (2007-03-07 23:54:00) [16]
> кроме платного ничего нет, самому своять,знать бы принцип
> ?
>
Долгая дорога в дюнах тебе :(
DVM (2007-03-07 23:13:00) [17]
> кроме платного ничего нет, самому своять,знать бы принцип
> ?
JediVCL + FastMM4 вполне достаточно, чтобы локализовать все исключения и прочие проблемные места в программе.
ДжекиМайер (2007-03-07 23:09:00) [18]google -> madcollection
EurekaLog. Купи и будь счастлив!
кроме платного ничего нет, самому своять,знать бы принцип ?
Джо (2007-03-07 22:40:00) [19]> на каждую строчку проги
> try
>
> ехсеpt
> messquack ('error hd');
> end;
>
> не поставить
И правильно. Зачем?
Dmitrij_K (2007-03-07 22:38:00) [20]google -> madcollection