AbortSignal
,
which is cought by most processes at some save place.
Typically, this is equivalent to a resume of the corresponding handler context's sender.
Most often, this is the recommended action to take, in order to exit the debugger after an error has been encountered, especially after code has been fixed in the debugger and resend is not possible due to already changed state.
This is also the action taken by the debugger if its main window is closed.
Because this is considered to be a "dangerous operation", the corresponding button is shown in a red color.
However, sometimes you need this if an error reappears over and over, for example if an error
is present in a window's event handling code and an abort leads immediately to another
error, to get out of such a never ending story.
This function is disabled in a modal debugger
(because this would terminate the event dispatcher or scheduler).
Depending on the settings, this function may not be present as a button function. In that case, you should look in the "File"-menu. However, it will be disabled, if no SMPT mail-host has been configured in the Launcher's "Settings"-"Communication"-"Misc" dialog.
This is one of the most useful functions, and typically used after a code change in the debugger. Apply this after a change made to a method (for example, one which was halted or breakpointed) and the method did not change any state on which it depends. Resending is not useful for example, if the method did already read data from a file stream or changed some other object. Then the called method would likely see unexpected/wrong data and fail for other reasons. In this case, select a context higher up in the calling chain (for example, where the file was opened) and restart that context, or use the "Abort" button, and retry the changed code in a "fresh run".
Notice: due to some compiler optimizations, not every context may be restartable. The button is disabled if such a context is selected.
'^ nil'
from a
selected method context, or return nil from a block evaluation).
Notice: in the current ST/X implementation, this function cannot be performed on block contexts or on method contexts which have been compiled with certain compiler-optimizations enabled. The "Return"-button is disabled if such a context is selected.
The bad news is that most precompiled classes have been compiled with this stc compiler optimization. So in fact most contexts of the base system are non-returnable. A workaround is to recompile the corresponding classes using the browser's "Recompile all Methods" menu item before you start to debug, to get "unoptimized" versions of those methods. Another workaround is to move up in the caller chain until you find any "returnable" context.
Notice: in the current ST/X implementation, this function cannot be performed on block contexts or on method contexts which have been compiled with certain compiler-optimizations enabled. The "Restart"-button is disabled if such a context is selected.
Read the notice above for workarounds.
Notice, that the debugger usually already tries to show the location of the error, if entered due to an unhandled exception. However, this button is useful to quickly navigate to the next raise-location for example, if interrupted while inside an exception handler which either raised another exception or which presented a warning dialog.
Continue in "Menu Functions"...
Copyright © 1995 Claus Gittinger Development & Consulting, all rights reserved
<cg at exept.de>