Let me see if I've got this. If there was a class, perhaps a subclass
of outputStream, that implemented a SAY method which would "collect" the
additional multi-threading information and add it to the argument that
it receives, then one would only need to create an instance of that
class associated with (presumably) STDERR and then change the
destination of .traceOutput to be that instance. The "enhanced" trace
lines would appear instead of the standard trace lines. Is that
somewhat correct?
Gil
On 3/25/2023 8:34 AM, Rick McGuire wrote:
I had one of those AHA moments this morning. The whole question about
multithreaded tracing can be quite cleanly resolved by removing the
question from the TRACE command entirely.
Currently, the trace output is written to the .TRACEOUTPUT monitor.
With a few small enhancements to already existing classes, it would be
possible for any additional information to be added by the
TRACEOUPUT target. To enable it, one would only need to push a new
output destination to the monitor. The new destination would add any
additional debug information to the trace lines. This is not only
pretty simple, but it also means any user can customize the trace
information to their own requirements, though it would be nice to
supply a couple of builtin alternatives.
The enhancements necessary to do this are pretty simple. The
StackFrame class already has most of the information you need for
debugging, but it could use methods to expose a threadid, instance id,
and also the current GUARD status in the case of method calls. This
can be quite easily done, and would provide useful debug information
for more than just the trace output. It might be desirable to add the
same methods to .Context. I can go either way with that one.
Rick
_______________________________________________
Oorexx-devel mailing list
Oorexx-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/oorexx-devel
_______________________________________________
Oorexx-devel mailing list
Oorexx-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/oorexx-devel