|
@@ -255,7 +255,10 @@ var
|
|
begin
|
|
begin
|
|
{$ifdef SIGNALS_DEBUG}
|
|
{$ifdef SIGNALS_DEBUG}
|
|
if IsConsole then
|
|
if IsConsole then
|
|
- writeln(stderr,'CallSignal called for signal ',sigtype);
|
|
|
|
|
|
+ begin
|
|
|
|
+ writeln(stderr,'CallSignal called for signal ',sigtype);
|
|
|
|
+ dump_stack(stderr,pointer(frame));
|
|
|
|
+ end;
|
|
{$endif SIGNALS_DEBUG}
|
|
{$endif SIGNALS_DEBUG}
|
|
{if frame=0 then
|
|
{if frame=0 then
|
|
begin
|
|
begin
|
|
@@ -351,13 +354,13 @@ var
|
|
|
|
|
|
|
|
|
|
function API_signals_exception_handler(exceptptrs : PEXCEPTION_POINTERS) : longint; stdcall;
|
|
function API_signals_exception_handler(exceptptrs : PEXCEPTION_POINTERS) : longint; stdcall;
|
|
- begin
|
|
|
|
- API_signals_exception_handler:=Signals_exception_handler(
|
|
|
|
- @exceptptrs^.ExceptionRecord,
|
|
|
|
- nil,
|
|
|
|
- @exceptptrs^.ContextRecord,
|
|
|
|
- nil);
|
|
|
|
- end;
|
|
|
|
|
|
+ begin
|
|
|
|
+ API_signals_exception_handler:=Signals_exception_handler(
|
|
|
|
+ @exceptptrs^.ExceptionRecord,
|
|
|
|
+ nil,
|
|
|
|
+ @exceptptrs^.ContextRecord,
|
|
|
|
+ nil);
|
|
|
|
+ end;
|
|
|
|
|
|
|
|
|
|
const
|
|
const
|
|
@@ -366,10 +369,10 @@ const
|
|
Prev_fpc_handler : pointer = nil;
|
|
Prev_fpc_handler : pointer = nil;
|
|
|
|
|
|
procedure install_exception_handler;
|
|
procedure install_exception_handler;
|
|
-{$ifdef SYSTEMEXCEPTIONDEBUG}
|
|
|
|
|
|
+{$ifdef SIGNALS_DEBUG}
|
|
var
|
|
var
|
|
oldexceptaddr,newexceptaddr : longint;
|
|
oldexceptaddr,newexceptaddr : longint;
|
|
-{$endif SYSTEMEXCEPTIONDEBUG}
|
|
|
|
|
|
+{$endif SIGNALS_DEBUG}
|
|
begin
|
|
begin
|
|
if Exception_handler_installed then
|
|
if Exception_handler_installed then
|
|
exit;
|
|
exit;
|
|
@@ -488,6 +491,5 @@ initialization
|
|
as other units also might install their handlers PM }
|
|
as other units also might install their handlers PM }
|
|
|
|
|
|
finalization
|
|
finalization
|
|
-
|
|
|
|
remove_exception_handler;
|
|
remove_exception_handler;
|
|
end.
|
|
end.
|