📄 wdb.html
字号:
<p></blockquote><h4>PROCEDURES</h4><blockquote><p>WDB transactions occur as described above. We now describe the setof WDB procedures. For each procedure, we list the input and outputstructures (if any), and some possible error codes. The error codes listedare in addition to the ones described in the previous sections.The actual values for the RPC procedure number, error status,and data types can be found in <b>${<b>WIND_BASE</b>}<b>/share/src/agents/wdb/wdb.h</b>.<p></blockquote><h4>SEE ALSO</h4><blockquote><p><b><a href="./wdb.html#top">WDB</a></b><hr><a name="WDB_CONTEXT_CONT"></a><p align=right><a href="rtnIndex.html"><i>WDB Protocol : Requests</i></a></p></blockquote><h1>WDB_CONTEXT_CONT</h1> <blockquote></a></blockquote><h4>NAME</h4><blockquote> <p><strong>WDB_CONTEXT_CONT</strong> - continue a context</p></blockquote><h4>SYNOPSIS</h4><blockquote><p><pre>INPUT: WDB_CTXOUTPUT: (</pre></blockquote><h4>DESCRIPTION</h4><blockquote><p>This routine continues a context that has been suspendedor has hit a breakpoint. The input parameters are specified in <b>WDB_CTX</b>:<p><pre>typedef struct wdb_ctx /* a particular context */ { WDB_CTX_TYPE contextType; /* type of context */ UINT32 contextId; /* context ID */ } WDB_CTX;</pre><p>If <b>contextType</b> is <b>WDB_CTX_SYSTEM</b>, the system context iscontinued. (This only makes sense if the agent is in system mode.)If <b>contextType</b> is <b>WDB_CTX_TASK</b>, the task whoseID is <b>contextId</b> is continued.<p></blockquote><h4>ERRORS</h4><blockquote><p><p><dl><dt><b>WDB_ERR_AGENT_MODE</b><dd>Attempting to continue a task from system mode or thesystem from task mode.<p><dt><b>WDB_ERR_INVALID_CONTEXT</b><dd>The context does not exist.<p><dt><b>WDB_ERR_NO_RT_PROC</b><dd>The agent does not support this service.<p><dt>WDB and RPC errors<dd> As described in the "REPLY ERRORS" section of the WDBman page.<p></dl></blockquote><h4>SEE ALSO</h4><blockquote><p><b><a href="./wdb.html#top">WDB</a></b><hr><a name="WDB_CONTEXT_CREATE"></a><p align=right><a href="rtnIndex.html"><i>WDB Protocol : Requests</i></a></p></blockquote><h1>WDB_CONTEXT_CREATE</h1> <blockquote></a></blockquote><h4>NAME</h4><blockquote> <p><strong>WDB_CONTEXT_CREATE</strong> - create a context on the target</p></blockquote><h4>SYNOPSIS</h4><blockquote><p><pre>INPUT: WDB_CTX_CREATE_DESCOUTPUT: UINT32</pre></blockquote><h4>DESCRIPTION</h4><blockquote><p>This routine creates a context on the target as specified in <b>WDB_CTX_CREATE_DESC</b>:<p><pre>typedef struct wdb_ctx_create_desc /* how to create a context */ { WDB_CTX_TYPE contextType; /* task or system context */ /* the following are used for task and system contexts */ TGT_ADDR_T stackBase; /* bottom of stack (NULL = malloc) */ UINT32 stackSize; /* stack size */ TGT_ADDR_T entry; /* context entry point */ TGT_INT_T args[10]; /* arguments */ /* the following are only used for task contexts */ WDB_STRING_T name; /* name */ TGT_INT_T priority; /* priority */ TGT_INT_T options; /* options */ TGT_INT_T redirIn; /* redirect input file (or 0) */ TGT_INT_T redirOut; /* redirect output file (or 0) */ TGT_INT_T redirErr; /* redirect error output file (or 0) */ } WDB_CTX_CREATE_DESC;</pre><p>where <b>WDB_CTX_TYPE</b> is one of the following:<p><pre>typedef enum wdb_ctx_type /* type of context on the target */ { WDB_CTX_SYSTEM = 0, /* system mode */ WDB_CTX_GROUP = 1, /* process group (not implemented) */ WDB_CTX_ANY = 2, /* any context (not implemented) */ WDB_CTX_TASK = 3, /* specific task or processes */ WDB_CTX_ANY_TASK = 4, /* any task */ WDB_CTX_ISR = 5, /* specific ISR (not implemented) */ WDB_CTX_ANY_ISR = 6 /* any ISR (not implemented) */ } WDB_CTX_TYPE;</pre><p>The output value is the task ID of the new task.<p></blockquote><h4>ERRORS</h4><blockquote><p><p><dl><dt><b>WDB_ERR_RT_ERROR</b><dd>The task creation failed.<p><dt><b>WDB_ERR_NO_AGENT_PROC</b><dd>The agent is in external mode (the version1.0 external-mode agent does not support context creation).<p><dt><b>WDB_ERR_NO_RT_PROC</b><dd>The agent does not support this service.<p><dt>WDB and RPC errors<dd> As described in the "REPLY ERRORS" section of the WDBman page.<p></dl></blockquote><h4>SEE ALSO</h4><blockquote><p><b><a href="./wdb.html#top">WDB</a></b><hr><a name="WDB_CONTEXT_KILL"></a><p align=right><a href="rtnIndex.html"><i>WDB Protocol : Requests</i></a></p></blockquote><h1>WDB_CONTEXT_KILL</h1> <blockquote></a></blockquote><h4>NAME</h4><blockquote> <p><strong>WDB_CONTEXT_KILL</strong> - kill a context on the target</p></blockquote><h4>SYNOPSIS</h4><blockquote><p><pre>INPUT: WDB_CTXOUTPUT: (</pre></blockquote><h4>DESCRIPTION</h4><blockquote><p>This routine kills the context specified in <b>WDB_CTX</b>:<p><pre>typedef struct wdb_ctx /* a particular context */ { WDB_CTX_TYPE contextType; /* type of context */ UINT32 contextId; /* context ID */ } WDB_CTX;</pre><p>If <b>contextType</b> is <b>WDB_CTX_SYSTEM</b>, the "system context" iskilled. (This means VxWorks is rebooted.) Otherwisethe task whose ID is <b>contextId</b> is killed.<p></blockquote><h4>ERRORS</h4><blockquote><p><p><dl><dt><b>WDB_ERR_AGENT_MODE</b><dd>Trying to kill a task while in system mode.<p><dt><b>WDB_ERR_INVALID_CONTEXT</b><dd>The context does not exist.<p><dt><b>WDB_ERR_NO_RT_PROC</b><dd>The agent does not support this service.<p><dt>WDB and RPC errors<dd> As described in the "REPLY ERRORS" section of the WDBman page.<p></dl></blockquote><h4>SEE ALSO</h4><blockquote><p><b><a href="./wdb.html#top">WDB</a></b><hr><a name="WDB_CONTEXT_RESUME"></a><p align=right><a href="rtnIndex.html"><i>WDB Protocol : Requests</i></a></p></blockquote><h1>WDB_CONTEXT_RESUME</h1> <blockquote></a></blockquote><h4>NAME</h4><blockquote> <p><strong>WDB_CONTEXT_RESUME</strong> - resume a context on the target</p></blockquote><h4>SYNOPSIS</h4><blockquote><p><pre>INPUT: WDB_CTXOUTPUT: (</pre></blockquote><h4>DESCRIPTION</h4><blockquote><p>This routine resumes the target context specified by <b>WDB_CTX</b>:<p><pre>typedef struct wdb_ctx /* a particular context */ { WDB_CTX_TYPE contextType; /* type of context */ UINT32 contextId; /* context ID */ } WDB_CTX;</pre><p>If <b>contextType</b> is <b>WDB_CTX_SYSTEM</b>, the "system context" isresumed (in other words, VxWorks is resumed). Otherwisethe task whose ID is <b>contextId</b> is resumed.<p></blockquote><h4>ERRORS</h4><blockquote><p><p><dl><dt><b>WDB_ERR_AGENT_MODE</b><dd>Trying to resume a task while in system mode.<p><dt><b>WDB_ERR_INVALID_CONTEXT</b><dd>The context does not exist.<p><dt><b>WDB_ERR_NO_RT_PROC</b><dd>The agent does not support this service.<p><dt>WDB and RPC errors<dd> As described in the "REPLY ERRORS" section of the WDBman page.<p></dl></blockquote><h4>SEE ALSO</h4><blockquote><p><b><a href="./wdb.html#top">WDB</a></b><hr><a name="WDB_CONTEXT_STATUS_GET"></a><p align=right><a href="rtnIndex.html"><i>WDB Protocol : Requests</i></a></p></blockquote><h1>WDB_CONTEXT_STATUS_GET</h1> <blockquote></a></blockquote><h4>NAME</h4><blockquote> <p><strong>WDB_CONTEXT_STATUS_GET</strong> - get the context of a status on the target</p></blockquote><h4>SYNOPSIS</h4><blockquote><p><pre>INPUT: )OUTPUT: INPUT:</pre></blockquote><h4>DESCRIPTION</h4><blockquote><p>This request returns the status of the target context specifiedby <b>WDB_CTX</b>:<p><pre>typedef struct wdb_ctx /* a particular context */ { WDB_CTX_TYPE contextType; /* type of context */ UINT32 contextId; /* context ID */ } WDB_CTX;</pre><p>If <b>contextType</b> is <b>WDB_CTX_SYSTEM</b>, we get the status of the "system context". At present, this request is only implemented for the "systemcontext".<p>The return value can be :<dl><dt><b>WDB_CTX_RUNNING</b><dd>The target context is running.<p><dt><b>WTX_CONTEXT_SUSPENDED</b><dd> The target context is suspended. </dl><p></blockquote><h4>ERRORS</h4><blockquote><p><p><dl><dt><b>WDB_ERR_AGENT_MODE</b><dd>Trying to get the status of a context other than the system context.<p><dt>WDB and RPC errors<dd> As described in the "REPLY ERRORS" section of the WDBman page. </dl></blockquote><h4>SEE ALSO</h4><blockquote><p><b><a href="./wdb.html#top">WDB</a></b><hr><a name="WDB_CONTEXT_STEP"></a><p align=right><a href="rtnIndex.html"><i>WDB Protocol : Requests</i></a></p></blockquote><h1>WDB_CONTEXT_STEP</h1> <blockquote></a></blockquote><h4>NAME</h4><blockquote> <p><strong>WDB_CONTEXT_STEP</strong> - single step a context</p></blockquote><h4>SYNOPSIS</h4><blockquote><p><pre>INPUT: WDB_CTX_STEP_DESCOUTPUT: (</pre></blockquote><h4>DESCRIPTION</h4><blockquote><p>This routine single steps a context. The context is defined by <b>WDB_CTX_STEP_DESC</b>:<p><pre>typedef struct wdb_ctx_step_desc /* how to single step a context */ { WDB_CTX context; /* context to step */ TGT_ADDR_T startAddr; /* lower bound of step range */ TGT_ADDR_T endAddr; /* upper bound of step range */ } WDB_CTX_STEP_DESC;</pre><p>where <b>WDB_CTX</b> describes the context to step:<p><pre>typedef struct wdb_ctx /* a particular context */ { WDB_CTX_TYPE contextType; /* type of context */ UINT32 contextId; /* context ID */ } WDB_CTX;</pre><p><b>startAddr</b> and <b>endAddr</b>specify the range of instructions to step over. If <b>startAddr</b> and <b>endAddr</b>both equal 0, then one instruction is stepped. Otherwise stepping occurs untilthe pointer is out of the step range.<p></blockquote><h4>NOTE</h4><blockquote><p>When the step completes, notification occurs by issuing an asynchronousevent of type <b>WDB_EVT_BP</b>. See <b><a href="./wdb.html#WDB_EVENT_GET">WDB_EVENT_GET</a></b> for details.<p></blockquote><h4>ERRORS</h4><blockquote><p><p><dl><dt><b>WDB_ERR_AGENT_MODE</b><dd>Trying to step a task in system mode ortrying to step the system in task mode.<p><dt><b>WDB_ERR_INVALID_CONTEXT</b><dd>Trying to step an invalid context.<p><dt><b>WDB_ERR_NO_RT_PROC</b><dd>The agent does not support this service.<p><dt>WDB and RPC errors<dd>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -