mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-06-02 12:13:11 +02:00
44 lines
850 B
ObjectPascal
44 lines
850 B
ObjectPascal
unit LCLExceptionStackTrace;
|
|
|
|
{$mode objfpc}{$H+}
|
|
|
|
interface
|
|
|
|
uses
|
|
SysUtils, LazLoggerBase, Forms, LCLProc;
|
|
|
|
implementation
|
|
|
|
type
|
|
TEventContainer = class
|
|
public
|
|
procedure HandleApplicationException(Sender: TObject; E: Exception);
|
|
end;
|
|
|
|
{ TEventContainer }
|
|
|
|
procedure TEventContainer.HandleApplicationException(Sender: TObject;
|
|
E: Exception);
|
|
begin
|
|
if not (E is EAbort) then
|
|
begin
|
|
DebugLn('TApplication.HandleException ',E.Message);
|
|
DumpExceptionBackTrace;
|
|
Application.ShowException(E);
|
|
end;
|
|
end;
|
|
|
|
procedure HandleOnShowException(Msg: ShortString);
|
|
begin
|
|
DebugLn('TApplication.HandleException Strange Exception');
|
|
DebugLn(Msg);
|
|
DumpExceptionBackTrace;
|
|
end;
|
|
|
|
initialization
|
|
SysUtils.OnShowException := @HandleOnShowException;
|
|
Application.OnException := @TEventContainer(nil).HandleApplicationException;
|
|
|
|
end.
|
|
|