The function debug-other-process
causes the debugger to be entered to examine the stack of another process process. The debugger itself continues to run in the current process, and the execution of the other process process is not affected. That means that all debugger commands that try to affect execution (for example :a
, :c
, :res
, :ret
, :trap
) do not work as in the normal debugger. :a
is changed instead to exit the debugger.
Note: if the other process is still active, the stack will change "under the feet" of the debugger, with unpredictable results. Thus debug-other-process
is useful only for debugging purposes, or when you already stopped the other process.
The usual way to enter a debugger on another thread is to use process-break. However, that would fail if the other process hangs for some reason. In this situation, you can use debug-other-process
to try to find out why it hangs.
If process is a string, the process is found as if by find-process-from-name. The list of process names can be found via ps.
LispWorks User Guide and Reference Manual - 13 Feb 2015