Henri Verbeet : ntdll: Fix ExceptionAddress for FPU exceptions.

Alexandre Julliard julliard at winehq.org
Mon Jan 5 10:24:20 CST 2009


Module: wine
Branch: master
Commit: 5e418a907208f62a2b1f68da483a8137568f4a1e
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=5e418a907208f62a2b1f68da483a8137568f4a1e

Author: Henri Verbeet <hverbeet at gmail.com>
Date:   Sun Jan  4 20:38:57 2009 +0100

ntdll: Fix ExceptionAddress for FPU exceptions.

ExceptionAddress isn't the same as EIP for FPU exceptions, since the
exception will be thrown on the next FPU instruction, rather than the
instruction that caused the exception.

---

 dlls/ntdll/signal_i386.c |    1 +
 1 files changed, 1 insertions(+), 0 deletions(-)

diff --git a/dlls/ntdll/signal_i386.c b/dlls/ntdll/signal_i386.c
index bd1e52b..08013fb 100644
--- a/dlls/ntdll/signal_i386.c
+++ b/dlls/ntdll/signal_i386.c
@@ -1452,6 +1452,7 @@ static void fpe_handler( int signal, siginfo_t *siginfo, void *sigcontext )
     case TRAP_x86_ARITHTRAP:  /* Floating point exception */
     case TRAP_x86_UNKNOWN:    /* Unknown fault code */
         rec->ExceptionCode = get_fpu_code( win_context );
+        rec->ExceptionAddress = (LPVOID)win_context->FloatSave.ErrorOffset;
         break;
     case TRAP_x86_CACHEFLT:  /* SIMD exception */
         /* TODO:




More information about the wine-cvs mailing list