summaryrefslogtreecommitdiff
path: root/libguile/debug.h
diff options
context:
space:
mode:
authorNeil Jerram <neil@ossau.uklinux.net>2001-06-26 21:55:45 +0000
committerNeil Jerram <neil@ossau.uklinux.net>2001-06-26 21:55:45 +0000
commitd95c0b76d6f139d59660bdc7b20fae5a15947bcd (patch)
treecb719979fbd8f0b2996aafda0b922fdf88a823f7 /libguile/debug.h
parent17383b7c773eaca6e5ab488c9edd1fa313c33248 (diff)
downloadguile-d95c0b76d6f139d59660bdc7b20fae5a15947bcd.tar.gz
* Handle evaluator traps by calling trap handlers directly rather than
by scm_ithrow and a lazy catch handler.
Diffstat (limited to 'libguile/debug.h')
-rw-r--r--libguile/debug.h10
1 files changed, 6 insertions, 4 deletions
diff --git a/libguile/debug.h b/libguile/debug.h
index 16d09510a..0954e3329 100644
--- a/libguile/debug.h
+++ b/libguile/debug.h
@@ -98,14 +98,16 @@ extern int scm_check_entry_p, scm_check_apply_p, scm_check_exit_p;
#define SCM_RESET_DEBUG_MODE \
do {\
- CHECK_ENTRY = SCM_ENTER_FRAME_P || SCM_BREAKPOINTS_P;\
- CHECK_APPLY = SCM_APPLY_FRAME_P || SCM_TRACE_P;\
- CHECK_EXIT = SCM_EXIT_FRAME_P || SCM_TRACE_P;\
+ CHECK_ENTRY = (SCM_ENTER_FRAME_P || SCM_BREAKPOINTS_P)\
+ && SCM_NFALSEP (SCM_ENTER_FRAME_HDLR);\
+ CHECK_APPLY = (SCM_APPLY_FRAME_P || SCM_TRACE_P)\
+ && SCM_NFALSEP (SCM_APPLY_FRAME_HDLR);\
+ CHECK_EXIT = (SCM_EXIT_FRAME_P || SCM_TRACE_P)\
+ && SCM_NFALSEP (SCM_EXIT_FRAME_HDLR);\
scm_debug_mode = SCM_DEVAL_P || CHECK_ENTRY || CHECK_APPLY || CHECK_EXIT;\
scm_ceval_ptr = scm_debug_mode ? scm_deval : scm_ceval;\
} while (0)
-
/* {Evaluator}
*/