summaryrefslogtreecommitdiffstats
path: root/debug.h
diff options
context:
space:
mode:
authorKaz Kylheku <kaz@kylheku.com>2019-04-16 14:16:33 -0700
committerKaz Kylheku <kaz@kylheku.com>2019-04-16 14:16:33 -0700
commitf029f2815c2d69ef833089f476d32cadc5edd2de (patch)
tree2fa684767bf49a32eca8c0eb9c5a8690ad620c1d /debug.h
parenta46ef5d5b56f0ca6f69a36ddf131bc3b9658b758 (diff)
downloadtxr-f029f2815c2d69ef833089f476d32cadc5edd2de.tar.gz
txr-f029f2815c2d69ef833089f476d32cadc5edd2de.tar.bz2
txr-f029f2815c2d69ef833089f476d32cadc5edd2de.zip
cmdline: use handler instead of catch for errors.
Errors encountered when parsing or evaluating a source file should be handled using a handler rather than a catch, so that the unwind stack is available to the error reporting function. This anticipates being able to dump a backtrace. * txr.c (parse_once_noerr, read_eval_stream_noerr): Adjust to reduced argument count in ignerr_func_body macro. * unwind.c (uw_trace_error): New function. * unwind.h (uw_trace_error): Declared. (ignerr_func_body): Revised to establish a handler in addition to the catch. The catch now doesn't do anything other than provide an intercepting exit point; the error_trace call is moved into the handler, and so it executes in a context where unwinding hasn't happened yet.
Diffstat (limited to 'debug.h')
0 files changed, 0 insertions, 0 deletions