diff options
author | Eugene Tarassov | 2012-05-31 19:15:52 +0000 |
---|---|---|
committer | Eugene Tarassov | 2012-05-31 19:15:52 +0000 |
commit | 02388c958af07b015c2dd463c259dd703ba47c14 (patch) | |
tree | 9a5d007de74b35ce7b998d7f3ca1eebec25dd7e6 /docs/TCF Service - Run Control.html | |
parent | 4b2c19a4c25ca40ffee67d72263b77443686fc25 (diff) | |
download | org.eclipse.tcf-02388c958af07b015c2dd463c259dd703ba47c14.tar.gz org.eclipse.tcf-02388c958af07b015c2dd463c259dd703ba47c14.tar.xz org.eclipse.tcf-02388c958af07b015c2dd463c259dd703ba47c14.zip |
TCF Docs: updated Run Control service specs
Diffstat (limited to 'docs/TCF Service - Run Control.html')
-rw-r--r-- | docs/TCF Service - Run Control.html | 290 |
1 files changed, 239 insertions, 51 deletions
diff --git a/docs/TCF Service - Run Control.html b/docs/TCF Service - Run Control.html index b018a68e6..1a5cca2c7 100644 --- a/docs/TCF Service - Run Control.html +++ b/docs/TCF Service - Run Control.html @@ -19,6 +19,7 @@ <li><a href='#CmdResume'>Resume</a> <li><a href='#CmdGetState'>Get State</a> <li><a href='#CmdTerminate'>Terminate</a> + <li><a href='#CmdDetach'>Detach</a> </ul> <li><a href='#Events'>Events</a> <li><a href='#API'>API</a> @@ -41,6 +42,10 @@ <td>1.0 <td>2008-05-06 <td>Approved + <tr> + <td>1.1 + <td>2012-05-30 + <td>TCF release 1.0 </table> <h2><a name='Overview'>Overview</a></h2> @@ -108,6 +113,15 @@ contextChanged event to notify changes in context data.</p> <li><code><b><font face="Courier New" size=2 color=#333399>"ParentID" : <i><string></i></font></b></code> - ID of a parent context. + <li><code><b><font face="Courier New" size=2 color=#333399>"ProcessID" : <i><string></i></font></b></code> + - ID of a process (memory space) of the context. + + <li><code><b><font face="Courier New" size=2 color=#333399>"CreatorID" : <i><string></i></font></b></code> + - ID of a context that created (started) this context. + + <li><code><b><font face="Courier New" size=2 color=#333399>"Name" : <i><string></i></font></b></code> + - human redable context name. + <li><code><b><font face="Courier New" size=2 color=#333399>"IsContainer" : <i><boolean></i></font></b></code> - true if the context is a container. Executing resume or suspend command on a container causes all its children to resume or suspend. @@ -130,7 +144,26 @@ contextChanged event to notify changes in context data.</p> - for each resume mode, corresponding bit is '1' if Resume command mode with count other then 1 is supported by the context. <li><code><b><font face="Courier New" size=2 color=#333399>"CanTerminate" : <i><boolean></i></font></b></code> - - true if Terminate command is supported by the context, + - true if Terminate command is supported by the context. + + <li><code><b><font face="Courier New" size=2 color=#333399>"CanDetach" : <i><boolean></i></font></b></code> + - true if Detach command is supported by the context. + + <li><code><b><font face="Courier New" size=2 color=#333399>"RCGroup" : <i><string></i></font></b></code> + - context ID of a run control group that contains the context. + Members of same group are always suspended and resumed together: + resuming/suspending a context resumes/suspends all members of the group + + <li><code><b><font face="Courier New" size=2 color=#333399>"BPGroup" : <i><string></i></font></b></code> + - context ID of a breakpoints group that contains the context. + Members of same group share same breakpoint instances: + a breakpoint is planted once for the group, no need to plant + the breakpoint for each member of the group + + <li><code><b><font face="Courier New" size=2 color=#333399>"SymbolsGroup" : <i><string></i></font></b></code> + - Context ID of a symbols group that contains the context. + Members of a symbols group share same symbol reader configuration settings, + like user defined memory map entries and source lookup info </ul> <h3><a name='CmdGetChildren'>Get Children</a></h3> @@ -191,100 +224,126 @@ to context's children. Only contexts with HasState = true can be resumed.</p> <p>Resume modes:</p> <ul> <li> - <code>RM_RESUME = 0</code> - resume normal execution. Execution will + <code><b><font face="Courier New" size=2 color=#333399>0</b></font></code> + - resume normal execution. Execution will continue until suspended by command or breakpoint. </li> <li> - <code>RM_STEP_OVER = 1</code> - step over a single instruction. If instruction + <code><b><font face="Courier New" size=2 color=#333399>1</b></font></code> + - step over a single instruction. If instruction is function call, execution continues until control returns from the function. </li> <li> - <code>RM_STEP_INTO = 2</code> - single instruction in given context. + <code><b><font face="Courier New" size=2 color=#333399>2</b></font></code> + - single instruction in given context. </li> <li> - <code>RM_STEP_OVER_LINE = 3</code> - resume execution of given context until control reaches instruction + <code><b><font face="Courier New" size=2 color=#333399>3</b></font></code> + - resume execution of given context until control reaches instruction that belongs to a different line of source code, but runs any functions called at full speed. Error is returned if line number information not available. </li> <li> - <code>RM_STEP_INTO_LINE = 4</code> - resumes execution of given context until control reaches instruction + <code><b><font face="Courier New" size=2 color=#333399>4</b></font></code> + - resumes execution of given context until control reaches instruction that belongs to a different line of source code. If a function is called, stop at first line of the function code. Error is returned if line number information not available. </li> <li> - <code>RM_STEP_OUT = 5</code> - resume execution of given context until control returns from current + <code><b><font face="Courier New" size=2 color=#333399>5</b></font></code> + - resume execution of given context until control returns from current function. </li> <li> - <code>RM_REVERSE_RESUME = 6</code> - reverse of <code>RM_RESUME</code>; resume backward execution. Execution will + <code><b><font face="Courier New" size=2 color=#333399>6</b></font></code> + - resume backward execution. Execution will continue until suspended by command or breakpoint. </li> <li> - <code>RM_REVERSE_STEP_OVER = 7</code> - reverse of <code>RM_STEP_OVER</code>; reverse step over a single instruction. + <code><b><font face="Courier New" size=2 color=#333399>7</b></font></code> + - reverse step over a single instruction. </li> <li> - <code>RM_REVERSE_STEP_INTO = 8</code> - reverse of <code>RM_STEP_INTO</code>; reverse step into a single instruction in the given context. + <code><b><font face="Courier New" size=2 color=#333399>8</b></font></code> + - reverse step into a single instruction in the given context. This effectively "un-executes" the previous instruction. </li> <li> - <code>RM_REVERSE_STEP_OVER_LINE = 9</code> - reverse of <code>RM_STEP_OVER_LINE</code>; resume backward execution - of given context until control reaches an instruction that belongs to a different source line. + <code><b><font face="Courier New" size=2 color=#333399>9</b></font></code> + - resume backward execution + of the context until control reaches an instruction that belongs to a different source line. If the line contains a function call then don't stop until get out of the function. Error is returned if line number information not available. </li> <li> - <code>RM_REVERSE_STEP_INTO_LINE = 10</code> - reverse of <code>RM_STEP_INTO_LINE</code>; resume backward execution of given context + <code><b><font face="Courier New" size=2 color=#333399>10</b></font></code> + - resume backward execution of the context until control reaches an instruction that belongs to a different line of source code. If a function is called, stop at the beginning of the last line of the function code. Error is returned if line number information not available. </li> <li> - <code>RM_REVERSE_STEP_OUT = 11</code> - reverse of <code>RM_STEP_OUT</code>; resume backward execution of - the given context until control reaches the point where the current function was called. + <code><b><font face="Courier New" size=2 color=#333399>11</b></font></code> + - resume backward execution of + the context until control reaches the point where the current function was called. + </li> + + <li> + <code><b><font face="Courier New" size=2 color=#333399>12</b></font></code> + - step over instructions until PC is outside the specified range. + A function call within the range is considered to be in range. + </li> + + <li> + <code><b><font face="Courier New" size=2 color=#333399>13</b></font></code> + - step instruction until PC is outside the specified range for any reason. </li> <li> - <code>RM_STEP_OVER_RANGE = 12</code> - step over instructions until PC is outside the specified range. - If any function call within the range is considered to be in range. + <code><b><font face="Courier New" size=2 color=#333399>14</b></font></code> + - resume backward execution until PC is outside the specified range. + A function call within the range is considered to be in range. </li> <li> - <code>RM_STEP_INTO_RANGE = 13</code> - step instruction until PC is outside the specified range for any reason. + <code><b><font face="Courier New" size=2 color=#333399>15</b></font></code> + - resume backward execution until PC is outside the specified range for any reason. </li> <li> - <code>RM_REVERSE_STEP_OVER_RANGE = 14</code> - reverse of <code>RM_STEP_OVER_RANGE</code>. + <code><b><font face="Courier New" size=2 color=#333399>16</b></font></code> + - run until the context becomes active - scheduled to run on a target CPU. </li> <li> - <code>RM_REVERSE_STEP_INTO_RANGE = 15</code> - reverse of <code>RM_STEP_INTO_RANGE</code>. + <code><b><font face="Courier New" size=2 color=#333399>17</b></font></code> + - run reverse until the context becomes active. </li> </ul> <p>Resume parameters names:</p> - <ul> - <li> - <code>RP_RANGE_START = "RangeStart"</code> - starting address of step range, inclusive. - </li> - <li> - <code>RP_RANGE_END = "RangeEnd"</code> - ending address of step range, exclusive. - </li> - </ul> - +<ul> + <li> + <code><b><font face="Courier New" size=2 color=#333399>"RangeStart" : <i><number></i></b></font></code> + starting address of step range, inclusive. + </li> + <li> + <code><b><font face="Courier New" size=2 color=#333399>"RangeEnd" : <i><number></i></b></font></code> + ending address of step range, exclusive. + </li> +</ul> <p>Result message:</p> @@ -315,19 +374,42 @@ R • <i><token></i> • <i><error report></i> • <i><b <p>State change reason can be any text, but if it is one of predefined strings, a generic client might be able to handle it better. Predefined reasons are:</p> <ul> - <li><code>REASON_USER_REQUEST = "Suspended"</code> - context suspended by command. - <li><code>REASON_STEP = "Step"</code> - context resumed or suspended by step command. - <li><code>REASON_BREAKPOINT = "Breakpoint"</code> - context suspended by breakpoint. - <li><code>REASON_EXCEPTION = "Exception"</code> - context suspended by exception. - <li><code>REASON_CONTAINER = "Container"</code> - context suspended or resumed as part of container. - <li><code>REASON_WATCHPOINT = "Watchpoint"</code> - context suspended by watchpoint (data breakpoint). - <li><code>REASON_SIGNAL = "Signal"</code> - context suspended because it received a signal. - <li><code>REASON_SHAREDLIB = "Shared Library"</code> - context suspended because a shared library is loaded or unloaded. - <li><code>REASON_ERROR = "Error"</code> - context suspended because of an error in execution environment. + <li><code><b><font face="Courier New" size=2 color=#333399>"Suspended"</b></font></code> + - context suspended by command. + <li><code><b><font face="Courier New" size=2 color=#333399>"Step"</b></font></code> + - context suspended by step command. + <li><code><b><font face="Courier New" size=2 color=#333399>"Breakpoint"</b></font></code> + - context suspended by breakpoint. + <li><code><b><font face="Courier New" size=2 color=#333399>"Exception"</b></font></code> + - context suspended by exception. + <li><code><b><font face="Courier New" size=2 color=#333399>"Container"</b></font></code> + - context suspended as part of container. + <li><code><b><font face="Courier New" size=2 color=#333399>"Watchpoint"</b></font></code> + - context suspended by watchpoint (data breakpoint). + <li><code><b><font face="Courier New" size=2 color=#333399>"Signal"</b></font></code> + - context suspended because it received a signal. + <li><code><b><font face="Courier New" size=2 color=#333399>"Shared Library"</b></font></code> + - context suspended because a shared library is loaded or unloaded. + <li><code><b><font face="Courier New" size=2 color=#333399>"Error"</b></font></code> + - context suspended because of an error in execution environment. </ul> <p>Context state properties can contain any data relevant to context state. -Definition of state properties depends on a target.</p> +Definition of state properties depends on a target. Predefined properties are:</p> +<ul> + <li><code><b><font face="Courier New" size=2 color=#333399>"Signal" : <i><int></i></b></font></code> + - signal that caused the context to become suspended + <li><code><b><font face="Courier New" size=2 color=#333399>"SignalName" : <i><string></i></b></font></code> + - name of the signal that caused the context to become suspended + <li><code><b><font face="Courier New" size=2 color=#333399>"SignalDescription" : <i><string></i></b></font></code> + - description of the signal that caused the context to become suspended + <li><code><b><font face="Courier New" size=2 color=#333399>"BPs" : <i><array of string></i></b></font></code> + - IDs of breakpoints that were triggered by the context + <li><code><b><font face="Courier New" size=2 color=#333399>"PCError" : <i><object></i></b></font></code> + - error report that describes a reason why program counter of the context is not available + <li><code><b><font face="Courier New" size=2 color=#333399>"Reversing" : <i><boolean></i></b></font></code> + - true if the context is running in reverse +</ul> <h3><a name='CmdTerminate'>Terminate</a></h3> @@ -344,6 +426,21 @@ property of the context is false.</p> R • <i><token></i> • <i><error report></i> • </font></b></pre> +<h3><a name='CmdDetach'>Detach</a></h3> + +<pre><b><font face="Courier New" size=2 color=#333399> +C • <i><token></i> • RunControl • detach • <i><string: context ID></i> • +</font></b></pre> + +<p>The command detaches debugger from the context. The command should fail if CanDetach +property of the context is false.</p> + +<p>Result message:</p> + +<pre><b><font face="Courier New" size=2 color=#333399> +R • <i><token></i> • <i><error report></i> • +</font></b></pre> + <h2><a name='Events'>Events</a></h2> <pre><b><font face="Courier New" size=2 color=#333399> @@ -416,12 +513,19 @@ E • RunControl • containerResumed • <i><array of context IDs&g <font color=#7F0055>static final</font> String PROP_ID = "ID", PROP_PARENT_ID = "ParentID", + PROP_PROCESS_ID = "ProcessID", + PROP_CREATOR_ID = "CreatorID", + PROP_NAME = "Name", PROP_IS_CONTAINER = "IsContainer", PROP_HAS_STATE = "HasState", PROP_CAN_RESUME = "CanResume", PROP_CAN_COUNT = "CanCount", PROP_CAN_SUSPEND = "CanSuspend", - PROP_CAN_TERMINATE = "CanTerminate"; + PROP_CAN_TERMINATE = "CanTerminate", + PROP_CAN_DETACH = "CanDetach", + PROP_RC_GROUP = "RCGroup", + PROP_BP_GROUP = "BPGroup", + PROP_SYMBOLS_GROUP = "SymbolsGroup"; <font color=#3F5FBF>/** * Context resume modes. @@ -438,7 +542,13 @@ E • RunControl • containerResumed • <i><array of context IDs&g RM_REVERSE_STEP_INTO = 8, RM_REVERSE_STEP_OVER_LINE = 9, RM_REVERSE_STEP_INTO_LINE = 10, - RM_REVERSE_STEP_OUT = 11; + RM_REVERSE_STEP_OUT = 11, + RM_STEP_OVER_RANGE = 12, + RM_STEP_INTO_RANGE = 13, + RM_REVERSE_STEP_OVER_RANGE = 14, + RM_REVERSE_STEP_INTO_RANGE = 15, + RM_UNTIL_ACTIVE = 16, + RM_REVERSE_UNTIL_ACTIVE = 17; <font color=#3F5FBF>/** * State change reason of a context. @@ -457,6 +567,24 @@ E • RunControl • containerResumed • <i><array of context IDs&g REASON_ERROR = "Error"; <font color=#3F5FBF>/** + * Optional parameters of context state. + */</font> + <font color=#7F0055>static final</font> String + STATE_SIGNAL = "Signal", + STATE_SIGNAL_NAME = "SignalName", + STATE_SIGNAL_DESCRIPTION = "SignalDescription", + STATE_BREAKPOINT_IDS = "BPs", + STATE_PC_ERROR = "PCError", + STATE_REVERSING = "Reversing"; + + <font color=#3F5FBF>/** + * Optional parameters of resume command. + */</font> + <font color=#7F0055>static final</font> String + RP_RANGE_START = "RangeStart", + RP_RANGE_END = "RangeEnd"; + + <font color=#3F5FBF>/** * Retrieve context info for given context ID. * * <font color=#7F9FBF>@param</font> id – context ID. @@ -510,6 +638,13 @@ E • RunControl • containerResumed • <i><array of context IDs&g <font color=#7F0055>interface</font> RunControlContext { <font color=#3F5FBF>/** + * Get context properties. See PROP_* definitions for property names. + * Context properties are read only, clients should not try to modify them. + * <font color=#7F9FBF>@return</font> Map of context properties. + */</font> + Map<String,Object> getProperties(); + + <font color=#3F5FBF>/** * Retrieve context ID. * Same as getProperties().get("ID") */</font> @@ -522,11 +657,22 @@ E • RunControl • containerResumed • <i><array of context IDs&g String getParentID(); <font color=#3F5FBF>/** - * Get context properties. See PROP_* definitions for property names. - * Context properties are read only, clients should not try to modify them. - * <font color=#7F9FBF>@return</font> Map of context properties. + * Retrieve context process ID. + * Same as getProperties().get("ProcessID") */</font> - Map<String,Object> getProperties(); + String getProcessID(); + + <font color=#3F5FBF>/** + * Retrieve context creator ID. + * Same as getProperties().get("CreatorID") + */</font> + String getCreatorID(); + + <font color=#3F5FBF>/** + * Retrieve human readable context name. + * Same as getProperties().get("Name") + */</font> + String getName(); <font color=#3F5FBF>/** * Utility method to read context property PROP_IS_CONTAINER. @@ -580,14 +726,52 @@ E • RunControl • containerResumed • <i><array of context IDs&g * however the method does not check that the command can be executed successfully in * the current state of the context. For example, the command still can fail if context is * already exited. - * <font color=#7F9FBF>@return</font> value of PROP_CAN_SUSPEND. + * <font color=#7F9FBF>@return</font> value of PROP_CAN_TERMINATE. */</font> <font color=#7F0055>boolean</font> canTerminate(); <font color=#3F5FBF>/** + * Utility method to read context property PROP_CAN_DETACH. + * Value 'true' means detach command is supported by the context, + * however the method does not check that the command can be executed successfully in + * the current state of the context. For example, the command still can fail if the context + * already has exited. + * <font color=#7F9FBF>@return</font> value of PROP_CAN_DETACH. + */</font> + <font color=#7F0055>boolean</font> canDetach(); + + <font color=#3F5FBF>/** + * Utility method to read context property PROP_RC_GROUP - + * context ID of a run control group that contains the context. + * Members of same group are always suspended and resumed together: + * resuming/suspending a context resumes/suspends all members of the group. + * <font color=#7F9FBF>@return</font> value of PROP_RC_GROUP. + */</font> + String getRCGroup(); + + <font color=#3F5FBF>/** + * Utility method to read context property PROP_BP_GROUP - + * context ID of a breakpoints group that contains the context. + * Members of same group share same breakpoint instances: + * a breakpoint is planted once for the group, no need to plant + * the breakpoint for each member of the group + * <font color=#7F9FBF>@return</font> value of PROP_BP_GROUP or null if the context does not support breakpoints. + */</font> + String getBPGroup(); + + <font color=#3F5FBF>/** + * Utility method to read context property PROP_SYMBOLS_GROUP - + * context ID of a symbols group that contains the context. + * Members of a symbols group share same symbol reader configuration settings, + * like user defined memory map entries and source lookup info. + * <font color=#7F9FBF>@return</font> value of PROP_SYMBOLS_GROUP or null if the context is not a member of a symbols group. + */</font> + String getSymbolsGroup(); + + <font color=#3F5FBF>/** * Send a command to retrieve current state of a context. * <font color=#7F9FBF>@param</font> done - command result call back object. - * <font color=#7F9FBF>@return</font> pending command handle, can be used to cancel the command. + * <font color=#7F9FBF>@return</font> pending command handle, PROP_CAN_DETACH be used to cancel the command. */</font> IToken getState(DoneGetState done); @@ -615,9 +799,13 @@ E • RunControl • containerResumed • <i><array of context IDs&g * <font color=#7F9FBF>@return</font> pending command handle, can be used to cancel the command. */</font> IToken terminate(DoneCommand done); - } - <font color=#7F0055>class</font> RunControlError <font color=#7F0055>extends</font> Exception { + <font color=#3F5FBF>/** + * Send a command to detach a context. + * <font color=#7F9FBF>@param</font> done - command result call back object. + * <font color=#7F9FBF>@return</font> pending command handle, can be used to cancel the command. + */</font> + IToken detach(DoneCommand done); } <font color=#7F0055>interface</font> DoneGetState { |