<< Prev | - Up - | Next >> |
Errors in programs often manifest themselves by threads throwing unhandled exceptions. It would be nice to have a post mortem stack to check how the position of the big bang was reached. Moreover, the environment should be visible.
Ozcar provides this information. Exceptions which would normally be printed in the Emulator buffer are catched by Ozcar, which prints the post mortem stack, together with an explanation of the exception in the status line. All stack frames provide variable information.
In the following example there was forgotten an else
branch in the case statement:
local
proc {Check X}
case X
of foo then {Show 'This is a foo'}
[] bar then {Show 'This is a bar'}
end
end
in
{Check foobar}
end
Picture 6.1: An unhandled exception has been raised
Emacs prints the location in the source where the error happened. Note that the bar is printed in red, as you reached the position unexpectedly.
Picture 6.2: Emacs shows the position where the error occured
Note that the thread is just about to die; if you do a single step into, it will actually terminate, and the post mortem stack vanishes.
<< Prev | - Up - | Next >> |