Debugging multithreaded programs can be difficult.
As described here, when any thread signals an error, Scheme 48 stops running all of the threads at that command level.
The following procedure (exported by the structure
debug-messages
) is useful in debugging multi-threaded
programs.
Debug-message
prints the elements to `stderr
', followed by a
newline.
The only types of values that debug-message
prints in full are small
integers (fixnums), strings, characters, symbols, booleans, and the empty list.
Values of other types are abbreviated as follows:
The great thing about
pair (...)
vector #(...)
procedure #{procedure}
record #{<name of record type>}
all others ???
debug-message
is that it bypasses Scheme 48's
I/O and thread handling.
The message appears immediately, with no delays or errors.
Previous: Debugging multithreaded programs | Next: Debugging multithreaded programs