Browse Source

* ignore non critical exceptions

git-svn-id: trunk@4605 -
florian 19 years ago
parent
commit
aa9808f6ce
1 changed files with 6 additions and 2 deletions
  1. 6 2
      rtl/win64/system.pp

+ 6 - 2
rtl/win64/system.pp

@@ -837,7 +837,7 @@ function syswin64_x86_64_exception_handler(excep : PExceptionPointers) : Longint
         err := 0;
         err := 0;
         must_reset_fpu := true;
         must_reset_fpu := true;
 {$ifdef SYSTEMEXCEPTIONDEBUG}
 {$ifdef SYSTEMEXCEPTIONDEBUG}
-        if IsConsole then Writeln(stderr,'Exception  ',
+        if IsConsole then Writeln(stderr,'Exception ',
           hexstr(excep^.ExceptionRecord^.ExceptionCode,8));
           hexstr(excep^.ExceptionRecord^.ExceptionCode,8));
 {$endif SYSTEMEXCEPTIONDEBUG}
 {$endif SYSTEMEXCEPTIONDEBUG}
         case cardinal(excep^.ExceptionRecord^.ExceptionCode) of
         case cardinal(excep^.ExceptionRecord^.ExceptionCode) of
@@ -894,7 +894,11 @@ function syswin64_x86_64_exception_handler(excep : PExceptionPointers) : Longint
               if ((excep^.ExceptionRecord^.ExceptionCode and SEVERITY_ERROR) = SEVERITY_ERROR) then
               if ((excep^.ExceptionRecord^.ExceptionCode and SEVERITY_ERROR) = SEVERITY_ERROR) then
                 err := 217
                 err := 217
               else
               else
-                err := 255;
+                { pass through exceptions which aren't an error. The problem is that vectored handlers
+                  always are called before structured ones so we see also internal exceptions of libraries.
+                  I wonder if there is a better solution (FK)
+                }
+                res:=EXCEPTION_CONTINUE_SEARCH;
             end;
             end;
         end;
         end;