Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2009.07.26;
Скачать: CL | DM;

Вниз

TApplicationEvents.OnException получить имя метода из Exception   Найти похожие ветки 

 
Rembo   (2009-05-31 01:14) [0]

В методе TApplicationEvents.OnException прописал это:
(Sender as TComponent).Name и смог писать в лог имя компонента который вызвал иссключение, есть ли способ узнать имя метода который вызвал иссключение?
(Sender as TComponent).MethodName() наверно позволит это, но что указывать в параметре не знаю. Наверно можно брать адрес из Exception.message пропарсив строку:
Access violation at address 0046DCD5 in module "Project1.exe". Read of address 00000000: n/a
но может есть путь попроще?


 
Игорь Шевченко ©   (2009-05-31 01:30) [1]

http://www.delphi-jedi.org jcl jcldebug.pas

uses
 JclDebug;

procedure TfMain.OnApplicationException(Sender: TObject; E: Exception);

 function StackTrace: string;
 var
   SL: TStringList;
 begin
   SL := TStringList.Create;
   try
     with TJclStackInfoList.Create(True, 0, nil) do
     try
       AddToStrings(SL);
       Result := SL.Text;
     finally
       Free;
     end;
   finally
     SL.Free;
   end;
 end;

var
 F: TextFile;
begin
   assignFile(F, LogFileName);
   if FileExists(LogFileName) then
     append(F)
   else
     rewrite(F);
   try
     writeln(F, StackTrace);
   finally
     CloseFile(F);
   end;
   Application.ShowException(E);
end;


 
Германн ©   (2009-05-31 01:51) [2]

Ещё проще http://www.eurekalog.com/
И готовая и дешёвая.


 
Rembo   (2009-05-31 01:57) [3]

А почему

p:=Ptr(StrtoInt(s));
ShowMessage((Sender as TComponent).MethodName(p));

неработает?
p:pointer;
s:string; - содержит вырезаный адрес из строки "Access violation at address 0046DCD5 in module..."
Выдает пустоту(


 
Игорь Шевченко ©   (2009-05-31 02:19) [4]


> А почему
>
> p:=Ptr(StrtoInt(s));
> ShowMessage((Sender as TComponent).MethodName(p));
> неработает?


I give you three guesses


 
clickmaker ©   (2009-06-01 11:47) [5]

> Выдает пустоту(

а что должен выдать?


 
clickmaker ©   (2009-06-01 12:11) [6]

If Address does not point to a published method of the object, MethodName returns an empty string
(c) Help



Страницы: 1 вся ветка

Текущий архив: 2009.07.26;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.015 c
11-1203566557
Jon
2008-02-21 07:02
2009.07.26
Error with CxKOLTiffJpg


2-1243513363
night_light
2009-05-28 16:22
2009.07.26
методы Assign и Canvas.Drawобъекта TBitmap


15-1243326751
Василий Жогарев
2009-05-26 12:32
2009.07.26
Архитектурный софт Free (Рисуем бани)


15-1243085085
Gooseman
2009-05-23 17:24
2009.07.26
Компьютерный глюк или вирус... Как лечить?


2-1243571350
сергей
2009-05-29 08:29
2009.07.26
DriverComboBox