diff options
author | Kaz Kylheku <kaz@kylheku.com> | 2015-08-06 22:10:18 -0700 |
---|---|---|
committer | Kaz Kylheku <kaz@kylheku.com> | 2015-08-06 22:10:18 -0700 |
commit | c9a8bbd7f5308b9d165b0d21ff9b49bcd4fc070e (patch) | |
tree | 8faf588326a83c0d99b050a847e95b9a80dcd8a8 /debug.c | |
parent | f93b24ace00a1800dd9540fa5268ce1c3bb6e61d (diff) | |
download | txr-c9a8bbd7f5308b9d165b0d21ff9b49bcd4fc070e.tar.gz txr-c9a8bbd7f5308b9d165b0d21ff9b49bcd4fc070e.tar.bz2 txr-c9a8bbd7f5308b9d165b0d21ff9b49bcd4fc070e.zip |
Suppress debug stepping into auto-loaded library code.
* debug.c (debug_set_state, debug_restore_state): New functions.
* debug.h (debug_state_t): New type.
(debug_set_state, debug_restore_state): Declared, and defined
as dummy macros in non-debug-support build.
* lisplib.c (opt_dbg_autoload): New global variable.
(lisplib_try_load): Disable or enable debugging around
library loading based on opt_dbg_autoload option.
* lisplib.h (opt_dbg_autoload): Declared.
* txr.c (help): List --debug-autoload option.
(no_dbg_support): New static function to avoid repeated code.
(txr_main): Add debugger option. Change duplicate no debug support
error messages into calls to no_dbg_support.
* txr.1: Document --debug-autoload
Diffstat (limited to 'debug.c')
-rw-r--r-- | debug.c | 14 |
1 files changed, 14 insertions, 0 deletions
@@ -241,6 +241,20 @@ val debug(val form, val bindings, val data, val line, val pos, val base) } } +debug_state_t debug_set_state(int depth, int step) +{ + debug_state_t old = { next_depth, step_mode }; + next_depth = depth; + step_mode = step; + return old; +} + +void debug_restore_state(debug_state_t state) +{ + next_depth = state.next_depth; + step_mode = state.step_mode; +} + void debug_init(void) { step_mode = 1; |