Changeset 7902


Ignore:
Timestamp:
Dec 12, 2007, 8:41:57 PM (13 years ago)
Author:
gb
Message:

When entering the kernel debugger on X8664/Darwin, try to note if
the unhandled exception occurred at _sigtramp and find and use
the signal context passed to _sigtramp if so.

File:
1 edited

Legend:

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

    r7779 r7902  
    866866    fprintf(stderr, "Exception occurred while executing foreign code\n");
    867867  }
    868 
    869868  if (lisp_global(BATCH_FLAG)) {
    870869    abort();
    871870  }
     871#ifdef DARWIN
     872#ifdef X8664
     873  if (xp) {
     874    extern void *_sigtramp();
     875   
     876    if (xpPC(xp) == (natural)_sigtramp) {
     877      xp = (ExceptionInformation *) xpGPR(xp,REG_RCX);
     878      fprintf(stderr, "Exception raised at _sigtramp; using context passed to _sigtramp.  Raw register values (R) may be more interesting then lisp values or lisp backtrace");
     879    }
     880  }
     881#endif
     882#endif
     883
     884
    872885  if (xp) {
    873886    if (why > debug_entry_exception) {
Note: See TracChangeset for help on using the changeset viewer.