Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
[dsdp-tcf-dev] [Bug 267674] New: [tcf][api] RunControl containerSuspend event

https://bugs.eclipse.org/bugs/show_bug.cgi?id=267674  
Product/Component: Target Management / TCF
           Summary: [tcf][api] RunControl containerSuspend event
           Product: Target Management
           Version: 3.0
          Platform: All
        OS/Version: All
            Status: NEW
          Severity: enhancement
          Priority: P3
         Component: TCF
        AssignedTo: dsdp.tm.tcf-inbox@xxxxxxxxxxx
        ReportedBy: sidharth@xxxxxxxxxxxxx
         QAContact: martin.oberhuber@xxxxxxxxxxxxx
                CC: eugene.tarassov@xxxxxxxxxxxxx,
                    felix.burton@xxxxxxxxxxxxx, sidharth@xxxxxxxxxxxxx


The RunControl containerSuspended event sends a PC value.

E • RunControl • containerSuspended • <string: context ID> • <int: PC> •
        <string: reason> • <state data> • <array of context IDs> •

In what scenario would a container would have a PC value?
Is this addressing the case where the event was being sent for one of the
contexts (such as a thread or a core) in the container that caused the
suspension, and the context ID and PC are pertaining to that context?

I think that the specification should allow a null to be sent for the PC for
this event.

E • RunControl • containerSuspended • <string: context ID> • <PC> •
        <string: reason> • <state data> • <array of context IDs> •
<PC>
    &#8658; null
    &#8658; <int: PC value>

Unfortunately this specification change would break backwards compatibility.

Incidentally, the Java implementation already uses a String for PC value so as
to allow null in a few different methods pasted below! 
(Any particular reason a String was preferred over a BigInteger?)


void doneGetState(IToken token, Exception error, boolean suspended, String pc,
                String reason, Map<String,Object> params);


/**
 * Called when a thread is suspended.
 * @param context - ID of a context that was suspended.
 * @param pc - program counter of the context, can be null.
 * @param reason - human readable description of suspend reason.
 * @param params - additional, target specific data about suspended context.
 */
void contextSuspended(String context, String pc,
                      String reason, Map<String,Object> params);


 /**
  * Called when target simultaneously suspends multiple threads in a container
  * (process, core, etc.).
  * 
  * @param context - ID of a context responsible for the event. It can be
container ID or
  * any one of container children, for example, it can be thread that hit
"suspend all" breakpoint.
  * Client expected to move focus (selection) to this context.
  * @param pc - program counter of the context.
  * @param reason - human readable description of suspend reason.
  * @param params - additional target specific data about suspended context.
  * @param suspended_ids - full list of all contexts that were suspended. 
  */
 void containerSuspended(String context, String pc,
                String reason, Map<String,Object> params, String[]  
suspended_ids);

---------
Legal Message: I, Sidharth Kodikal, declare that I developed attached code from
scratch, without referencing any 3rd party materials except material licensed
under the EPL. {I am authorized by my employer to make this contribution under
the EPL.}


-- 
Configure bugmail: https://bugs.eclipse.org/bugs/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are watching the assignee of the bug.

Back to the top