Changeset 8740


Ignore:
Timestamp:
03/07/05 19:06:26 (16 years ago)
Author:
piso
Message:

SYS::%DEBUGGER-HOOK-FUNCTION

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/j/src/org/armedbear/lisp/Interpreter.java

    r8660 r8740  
    33 *
    44 * Copyright (C) 2002-2005 Peter Graves
    5  * $Id: Interpreter.java,v 1.81 2005-02-28 02:50:03 piso Exp $
     5 * $Id: Interpreter.java,v 1.82 2005-03-07 19:06:26 piso Exp $
    66 *
    77 * This program is free software; you can redistribute it and/or
     
    416416            throws ConditionThrowable
    417417        {
    418             throw new ConditionThrowable((Condition)first);
     418            final Condition condition = (Condition) first;
     419            if (interpreter == null) {
     420                final LispThread thread = LispThread.currentThread();
     421                final SpecialBinding lastSpecialBinding = thread.lastSpecialBinding;
     422                thread.bindSpecial(_PRINT_ESCAPE_, NIL);
     423                try {
     424                    final LispObject truename =
     425                        _LOAD_TRUENAME_.symbolValue(thread);
     426                    if (truename != NIL) {
     427                        final LispObject stream =
     428                            _LOAD_STREAM_.symbolValue(thread);
     429                        if (stream instanceof Stream) {
     430                            final int lineNumber =
     431                                ((Stream)stream).getLineNumber() + 1;
     432                            final int offset =
     433                                ((Stream)stream).getOffset();
     434                            Debug.trace("Error loading " +
     435                                        truename.writeToString() +
     436                                        " at line " + lineNumber +
     437                                        " (offset " + offset + ")");
     438                        }
     439                    }
     440                    Debug.trace("Encountered unhandled condition of type " +
     441                                condition.typeOf().writeToString() + ':');
     442                    Debug.trace("  " + condition.writeToString());
     443                }
     444                catch (Throwable t) {}
     445                finally {
     446                    thread.lastSpecialBinding = lastSpecialBinding;
     447                }
     448            }
     449            throw new ConditionThrowable(condition);
    419450        }
    420451    };
Note: See TracChangeset for help on using the changeset viewer.