:- use_module(library(threadutil)).(can be autoloaded)
This predicate has a couple of useful applications. One is to separate (debugging) I/O of different threads. Another is to start debugging a thread that is running in the background. If thread 10 is running, the following sequence starts the tracer on this thread:
?- thread_signal(10, (attach_console, trace)).