ソースを参照

+ Use SigContext sigc_sp and sigc_pc fields for HandleErrorAdrFrame parameters

git-svn-id: trunk@21703 -
pierre 13 年 前
コミット
150578f2c0
1 ファイル変更18 行追加1 行削除
  1. 18 1
      rtl/linux/mips/sighnd.inc

+ 18 - 1
rtl/linux/mips/sighnd.inc

@@ -19,6 +19,7 @@ procedure SignalToRunerror(sig : longint; SigInfo: PSigInfo; SigContext: PSigCon
 var
   res : word;
   addr : pointer;
+  frame : pointer;
 begin
   res:=0;
   addr:=nil;
@@ -57,5 +58,21 @@ begin
   reenable_signal(sig);
   { give runtime error at the position where the signal was raised }
   if res<>0 then
-    HandleErrorAddrFrame(res,addr,nil);
+    begin
+{$ifdef FPC_FRAMETYPE_RECORD}
+      if assigned(SigContext) then
+        begin
+          frame:=pointer(SigContext^.sigc_sp);   { stack pointer }
+          addr:=pointer(SigContext^.sigc_pc);  { program counter }
+        end
+      else
+        begin
+          frame:=nil;
+          addr:=nil;
+        end;
+{$else not FPC_FRAMETYPE_RECORD}
+      frame:=nil;
+{$endif FPC_FRAMETYPE_RECORD}
+      HandleErrorAddrFrame(res,addr,frame);
+    end;
 end;