⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 wdb.html

📁 vxworks相关论文
💻 HTML
📖 第 1 页 / 共 5 页
字号:
 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_SUSPEND"></a><p align=right><a href="rtnIndex.html"><i>WDB Protocol :  Requests</i></a></p></blockquote><h1>WDB_CONTEXT_SUSPEND</h1> <blockquote></a></blockquote><h4>NAME</h4><blockquote>  <p><strong>WDB_CONTEXT_SUSPEND</strong> - suspend 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 suspends 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>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>If <b>contextType</b> is <b>WDB_CTX_SYSTEM</b>, the "system context" issuspended (in other words, VxWorks is suspended).  Otherwisethe task whose ID is <b>contextId</b> is suspended.<p></blockquote><h4>ERRORS</h4><blockquote><p><p><dl><dt><b>WDB_ERR_AGENT_MODE</b><dd>Trying to suspend 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_DIRECT_CALL"></a><p align=right><a href="rtnIndex.html"><i>WDB Protocol :  Requests</i></a></p></blockquote><h1>WDB_DIRECT_CALL</h1> <blockquote></a></blockquote><h4>NAME</h4><blockquote>  <p><strong>WDB_DIRECT_CALL</strong> - call a function on the target in the agent's context</p></blockquote><h4>SYNOPSIS</h4><blockquote><p><pre>INPUT: WDB_CTX_CREATE_DESCOUTPUT: UINT32</pre></blockquote><h4>DESCRIPTION</h4><blockquote><p>This routine calls the specified function in the target agent's context andwaits for the function to return.  The function is specifiedby the <b>entry</b> and <b>args[10]</b> members of <b>WDB_CTX_CREATE_DESC</b>.  The othermembers are ignored and are set to NULL.<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>The output contains the result of the function and is a UINT32.<p></blockquote><h4>ERRORS</h4><blockquote><p><p><dl><dt>WDB and RPC errors<dd> As described in the "REPLY ERRORS" section of theWDB man page.<p></dl></blockquote><h4>SEE ALSO</h4><blockquote><p><b><a href="./wdb.html#top">WDB</a></b><hr><a name="WDB_EVALUATE_GOPHER"></a><p align=right><a href="rtnIndex.html"><i>WDB Protocol :  Requests</i></a></p></blockquote><h1>WDB_EVALUATE_GOPHER</h1> <blockquote></a></blockquote><h4>NAME</h4><blockquote>  <p><strong>WDB_EVALUATE_GOPHER</strong> - execute a Gopher string</p></blockquote><h4>SYNOPSIS</h4><blockquote><p><pre>INPUT: WDB_STRING_TOUTPUT: WDB_MEM_XFER</pre></blockquote><h4>DESCRIPTION</h4><blockquote><p>Gopher is a small, interpreted language that allows the traversal ofsimple data structures in target memory.This request sends the specified Gopher program to the target forevaluation and returns the result of the evaluation in a Gopher tape.  Thecontents of the target memory specified by the Gopher program are writtento the tape.  For more informationon the Gopher language, see the documentation of <b><a href="../wtxpcl/wtx.html#WTX_GOPHER_EVAL" >WTX_GOPHER_EVAL</a></b> in the <i>API Reference Manual: WTX Protocol </i>or the discussion in the<i>API User's Guide: The WTX Protocol. </i>The string to be evaluated is passed in <b>WDB_STRING_T</b>.<p>The result of evaluating the Gopher string is returned in a <b>WDB_MEM_XFER</b>structure:<p><pre>typedef struct wdb_mem_xfer		/* transfer a block of memory */    {    WDB_OPQ_DATA_T	source;		/* data to transfer */    TGT_ADDR_T		destination;	/* requested destination */    TGT_INT_T		numBytes;	/* number of bytes transferred */    } WDB_MEM_XFER;</pre><p></blockquote><h4>ERRORS</h4><blockquote><p><p><dl><dt><b>WDB_ERR_GOPHER_SYNTAX</b><dd>The Gopher string is malformed.<p><dt><b>WDB_ERR_GOPHER_FAULT</b><dd>A memory fault occurred while executing the string.<p><dt><b>WDB_ERR_GOPHER_TRUNCATED</b><dd>The resulting reply was too large to upload.<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>, <b><a href="../wtxpcl/wtx.html#WTX_GOPHER_EVAL" >WTX_GOPHER_EVAL</a></b><hr><a name="WDB_EVENTPOINT_ADD"></a><p align=right><a href="rtnIndex.html"><i>WDB Protocol :  Requests</i></a></p></blockquote><h1>WDB_EVENTPOINT_ADD</h1> <blockquote></a></blockquote><h4>NAME</h4><blockquote>  <p><strong>WDB_EVENTPOINT_ADD</strong> - add an asynchronous eventpoint</p></blockquote><h4>SYNOPSIS</h4><blockquote><p><pre>INPUT: WDB_EVTPT_ADD_DESCOUTPUT: UINT32</pre></blockquote><h4>DESCRIPTION</h4><blockquote><p>This routine adds an asynchronous eventpoint to the target.The type of event to add an eventpoint for is specified by <b>WDB_EVTPT_ADD_DESC</b>:<p><pre>typedef struct wdb_evtpt_add_desc	/* how to add an eventpt */    {    WDB_EVT_TYPE	evtType;	/* type of event to detect */    TGT_INT_T		numArgs;	/* eventType dependent arguments */    UINT32  *  		args;		/* arg list */    WDB_CTX		context;	/* context in which event must occur */    WDB_ACTION 		action;		/* action to perform */    } WDB_EVTPT_ADD_DESC;</pre><p>where <b>args</b> points to an argument list and <b>context</b> is:<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>WDB_ACTION</b> is:<p><pre>typedef struct wdb_action		/* a specific action */    {    WDB_ACTION_TYPE	actionType;    UINT32		actionArg;    TGT_ADDR_T		callRtn;    TGT_INT_T		callArg;    } WDB_ACTION;</pre><p>and <b>WDB_ACTION_TYPE</b> is:<p><pre>typedef enum wdb_action_type		/* what to do when an event occurs */    {    WDB_ACTION_CALL	= 1,		/* condition the evtpt via a proc */    WDB_ACTION_NOTIFY	= 2,		/* notify the host */    WDB_ACTION_STOP	= 4		/* stop the context */    } WDB_ACTION_TYPE;</pre><p>Currently, eventpoints can be added for the following event types:<dl><dt><b>WDB_EVT_BP</b><dd>breakpoint<p><dt><b>WDB_EVT_HW_BP</b><dd>hardware breakpoint<p><dt><b>WDB_EVT_CTX_EXIT</b><dd>context exit<p><dt><b>WDB_EVT_CTX_START</b><dd> context creation </dl><p>All possible event types are enumerated by <b>WDB_EVT_TYPE</b>:<p><pre>typedef enum wdb_evt_type		/* type of event on the target */    {    WDB_EVT_NONE	= 0,		/* no event */    WDB_EVT_CTX_START	= 1,		/* context creation */    WDB_EVT_CTX_EXIT	= 2,		/* context exit */    WDB_EVT_BP		= 3,		/* breakpoint */    WDB_EVT_HW_BP	= 4,		/* hardware breakpoint */    WDB_EVT_WP		= 5,		/* watchpoint */    WDB_EVT_EXC		= 6,		/* exception */    WDB_EVT_VIO_WRITE	= 7,		/* virtual I/O write */    WDB_EVT_CALL_RET	= 8,		/* function call finished */    WDB_EVT_TSFS_OP	= 9,		/* VIO II operation */    WDB_EVT_USER	= 10		/* user event */    } WDB_EVT_TYPE;</pre><p><b>context</b> specifies the context for which theevent should be detected. Currently, <b>contextType</b> canbe <b>WDB_CTX_SYSTEM</b> (for a system mode breakpoint), <b>WDB_CTX_TASK</b>(for a task-specific eventpoint), or <b>WDB_CTX_ANY_TASK</b> fora tasking breakpoint that applies to any task.<p><b>numArgs</b> and <b>args</b> specifyarguments to pass to the eventpoint. For <b>WDB_EVT_CTX_EXIT</b> and <b>WDB_EVT_CTX_START</b> eventpoints, <b>numArgs</b> should be zero. For <b>WDB_EVT_BP</b>,<b>numArgs</b> should be one or two, <b>args[0]</b> should be the breakpoint addressand <b>args[1]</b> (optional) should be the breakpoint count. For <b>WDB_EVT_HW_BP</b>,<b>numArgs</b> should be three,  <b>args[0]</b> should be the breakpoint address,<b>args[1]</b> should be the breakpoint count and <b>args[2]</b> should be the hardware breakpoint access type. For more informations on hardwarebreakpoint access type, refer to the <b><a href="../wtxpcl/wtx.html#WTX_EVENTPOINT_ADD_2" >WTX_EVENTPOINT_ADD_2</a></b> documentation.<p><b>action</b> is set to the appropriate action to perform when the breakpointis hit as defined by the structures <b>WDB_ACTION</b> and <b>WDB_ACTION_TYPE</b> in <b>wdb.h</b>.<p>The return value is an eventpoint ID, which is a handle to the eventpoint.<p></blockquote><h4>NOTES</h4><blockquote><p><dl><dt>1.<dd>Context-specific eventpoints are automatically deleted whenthe context exits. Otherwise eventpoints are persistent until<b><a href="./wdb.html#WDB_EVENTPOINT_DELETE">WDB_EVENTPOINT_DELETE</a></b> is called to delete them.<p><dt>2.<dd>Tasking breakpoints are disabled if the agent switches toexternal mode (by way of <b><a href="./wdb.html#WDB_MODE_SET">WDB_MODE_SET</a></b>), but are reenabled if the agentswitches back again to tasking mode. Similarly, external-mode breakpointsare disabled if the agent switches to tasking mode and reenabled ifthe agent switches back again.<p><dt>3.<dd>When the eventpoint is hit, notification occurs as described inthe "ASYNCHRONOUS NOTIFICATION SENT BY THE AGENT" section of the WDBman page. After being notified, the host uploads the event withthe <b><a href="./wdb.html#WDB_EVENT_GET">WDB_EVENT_GET</a></b> procedure.<p><dt>4.<dd> A hardware breakpoints can generate <b>WDB_EVT_BP</b> if it is an instruction hardware breakpoint or <b>WDB_EVT_WP</b> if it is a data access breakpoint.<p></dl></blockquote><h4>ERRORS</h4><blockquote><p><p><dl><dt><b>WDB_ERR_INVALID_EVENT</b><dd>There is no handler for the specified event type.<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_EVENTPOINT_DELETE"></a><p align=right><a href="rtnIndex.html"><i>WDB Protocol :  Requests</i></a></p></blockquote><h1>WDB_EVENTPOINT_DELETE</h1> <blockquote></a></blockquote><h4>NAME</h4><blockquote>  <p><strong>WDB_EVENTPOINT_DELETE</strong> - delete an eventpoint</p></blockquote><h4>SYNOPSIS</h4><blockquote><p><pre>INPUT: WDB_EVTPT_DEL_DESCOUTPUT: (</pre></blockquote><h4>DESCRIPTION</h4><blockquote><p>This routine deletes the eventpoint specified by <b>WDB_EVTPT_DEL_DESC</b>:<p><pre>typedef struct wdb_evtpt_del_desc	/* how to delete an eventpoint */    {    WDB_EVT_TYPE 	evtType;	/* type of event */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -