Hi,

just saw the the additions in cvs/svn and reading the documentation.
Having this information available in trace while debugging multithreaded
Rexx programs is really a big boon!

Looking at the example in the documentation shows the thread id and
activation id in hex. Although this is correct, it would be *much*
easier on the programmer, if she would not see hexadecimal strings
(which are difficult to read and grasp for humans), if you could display
them like in the e-mail (see below), in which you use symbolic names
like "T1" and "T2" for different threads and "A1" and "A3" for different
activities! This would make the trace output so much easier to read!

Regards,

---rony
P.S.: Of course the hex id value should still be communicated somehow;
either turned on by a switch or a table mapping at the start/end of
tracing where the symbolic values to id values are given.


On 23.02.2011 13:54, Jean-Louis Faucher wrote:
> Hi
>
> I'm thinking of modifying my sandbox to add informations about current
> thread, activation and scope lock when tracing.
> But maybe I miss the point and a better (simpler) technique exists...
> Let me know.
>
> To illustrate my problem ("T1", "A1", "P1" added by me):
>
> coroutine~start -- guarded
> coroutine~resume -- unguarded
>
> T1 A1 P1*      >I> Method START with scope "The COROUTINE class" in
> package..
> T1 A1 P1*      ...<snip>...
> T1 A1 P1*   93 *-* guard off
> T1 A1 P1    94 *-* reply self
> T1 A1 P1      >V>   SELF => "a COROUTINE"
> T1 A1 P1      >>>   "a COROUTINE"
> T2 A1 P1      >I> Method START with scope "The COROUTINE class" in
> package...
> T1 A3 P1      >I> Method RESUME with scope "The COROUTINE class" in
> package..
> T2 A1 P1   95 *-* signal on any
> T1 A3 P1  162 *-* expose status yieldValue
> T2 A1 P1   96 *-* guard on when status <> .Coroutine~suspended
> T1 A3 P1  162 *-* expose status yieldValue
>
> After the reply, the thread T2 starts working and I see interleaved
> traces.
> It becomes difficult to know which thread and which activation is traced.
>
> For Tx, I could display the thread id
> For Ax, I could display the activation's pointer. The first occurence
> of an Ax gives all the details about the invocation.
> For Px, I could display the pool's pointer
> Not very readable, but...
>
> The '*' would be displayed when the current pool is locked (assuming I
> can get this info : seems to be activation->object_scope ==
> SCOPE_RESERVED)).
>
> Questions :
> In the doc, I read "invocation". Is it an instance of RexxActivation ?
> In the doc, I read "the activity acquires exclusive access (a lock)
> for the object’s scope". An object's scope is a pool of variables ?
> Which class is it ?
>
> Regards
> Jean-Louis


------------------------------------------------------------------------------
Free Software Download: Index, Search & Analyze Logs and other IT data in 
Real-Time with Splunk. Collect, index and harness all the fast moving IT data 
generated by your applications, servers and devices whether physical, virtual
or in the cloud. Deliver compliance at lower cost and gain new business 
insights. http://p.sf.net/sfu/splunk-dev2dev 
_______________________________________________
Oorexx-devel mailing list
Oorexx-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/oorexx-devel

Reply via email to