A running program can be interrupted in various ways:
Interrupting
Pressing the "Interrupt"-key ("Untbr" on german keyboards)
in a window will interrupt that window's process and open a debugger on it.
For those used to squeak or visualworks smalltalk systems, the
"Alt-." (alt-period) key-combination also shows this behavior.
Leave the debugger, either by proceeding, aborting or terminating.
- proceed
The interrupted process will continue where it was interrupted.
- abort
The interrupted process will be sent the Abort-signal. This signal is cought
in every window-processes event loop and also in a workspaces doIt-evaluator.
Thus, this usually gets you out of a faulty computation and brings you back into the
command processor.
- terminate
The interrupted process will be terminated. If the process is a window-handling process,
the corresponding window will typically be closed due to the processes cleanup actions:
Occasionally, the window stays open (in case there is a bug in the processes unwind actions, and
the cleanup cannot be performed correctly). If this happens, close the window using the launcher's
"Window" - "Close" menu function.
More information on the debugger is found in the
tutorial
and in the
debugger's documentation.
Aborting
Pressing the "CTRL-Interrupt" ("CTRL-Untbr" on german keyboards)
will abort the running process. This is the same as an interrupt followed by aborting in the debugger.
The process receives the Abort-signal and is thrown back into its main event loop
(or doIt command-loop, if it is a workspace).
Interrupting on the Console
A runaway non-GUI process can be interrupted by pressing "CTRL-C" on the
console (xterm) window. However, ST/X must have been started with a console window
beforehand ("stx.com" vs. "stx.exe").
Using the Process Monitor
If you have a access to a
process monitor window
(or you can open one in the launcher),
you can also interrupt, stop, abort or terminate any other process from there.
Breakpointing
If you have a access to another browser window (or you can open one in the launcher),
you can also place a breakpoint on a method which is known to be called by your runaway
program. I.e. you don't need to stop a program for a breakpoint to become active.
However, this only works if ou have any idea on what the runaway process is going to
do.