Changeset 6025


Ignore:
Timestamp:
Mar 12, 2007, 8:08:04 AM (13 years ago)
Author:
gb
Message:

in catch_exception_raise(), try to deal with variations in Mach
behavior: "exception" may be EXC_BAD_ACCESS when an illegal instruction
causes a "general protection fault".

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/ccl/lisp-kernel/x86-exceptions.c

    r5973 r6025  
    22102210      CLR_TCR_FLAG(tcr,TCR_FLAG_BIT_PENDING_EXCEPTION);
    22112211    }
    2212     if ((exception == EXC_BAD_INSTRUCTION) &&
     2212    if ((code == EXC_I386_GPFLT) &&
    22132213        ((natural)(ts_pc(ts)) == (natural)pseudo_sigreturn)) {
    22142214      kret = do_pseudo_sigreturn(thread, tcr);
     
    22222222      switch (exception) {
    22232223      case EXC_BAD_ACCESS:
    2224         signum = SIGBUS;
     2224        if (code == EXC_I386_GPFLT) {
     2225          signum = SIGSEGV;
     2226        } else {
     2227          signum = SIGBUS;
     2228        }
    22252229        break;
    22262230       
Note: See TracChangeset for help on using the changeset viewer.