1<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 2<html> 3<!-- Copyright (C) 1988-2021 Free Software Foundation, Inc. 4 5Permission is granted to copy, distribute and/or modify this document 6under the terms of the GNU Free Documentation License, Version 1.3 or 7any later version published by the Free Software Foundation; with the 8Invariant Sections being "Free Software" and "Free Software Needs 9Free Documentation", with the Front-Cover Texts being "A GNU Manual," 10and with the Back-Cover Texts as in (a) below. 11 12(a) The FSF's Back-Cover Text is: "You are free to copy and modify 13this GNU Manual. Buying copies from GNU Press supports the FSF in 14developing GNU and promoting software freedom." --> 15<!-- Created by GNU Texinfo 5.1, http://www.gnu.org/software/texinfo/ --> 16<head> 17<title>Debugging with GDB: Packets</title> 18 19<meta name="description" content="Debugging with GDB: Packets"> 20<meta name="keywords" content="Debugging with GDB: Packets"> 21<meta name="resource-type" content="document"> 22<meta name="distribution" content="global"> 23<meta name="Generator" content="makeinfo"> 24<meta http-equiv="Content-Type" content="text/html; charset=utf-8"> 25<link href="index.html#Top" rel="start" title="Top"> 26<link href="Concept-Index.html#Concept-Index" rel="index" title="Concept Index"> 27<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents"> 28<link href="Remote-Protocol.html#Remote-Protocol" rel="up" title="Remote Protocol"> 29<link href="Stop-Reply-Packets.html#Stop-Reply-Packets" rel="next" title="Stop Reply Packets"> 30<link href="Overview.html#Overview" rel="previous" title="Overview"> 31<style type="text/css"> 32<!-- 33a.summary-letter {text-decoration: none} 34blockquote.smallquotation {font-size: smaller} 35div.display {margin-left: 3.2em} 36div.example {margin-left: 3.2em} 37div.indentedblock {margin-left: 3.2em} 38div.lisp {margin-left: 3.2em} 39div.smalldisplay {margin-left: 3.2em} 40div.smallexample {margin-left: 3.2em} 41div.smallindentedblock {margin-left: 3.2em; font-size: smaller} 42div.smalllisp {margin-left: 3.2em} 43kbd {font-style:oblique} 44pre.display {font-family: inherit} 45pre.format {font-family: inherit} 46pre.menu-comment {font-family: serif} 47pre.menu-preformatted {font-family: serif} 48pre.smalldisplay {font-family: inherit; font-size: smaller} 49pre.smallexample {font-size: smaller} 50pre.smallformat {font-family: inherit; font-size: smaller} 51pre.smalllisp {font-size: smaller} 52span.nocodebreak {white-space:nowrap} 53span.nolinebreak {white-space:nowrap} 54span.roman {font-family:serif; font-weight:normal} 55span.sansserif {font-family:sans-serif; font-weight:normal} 56ul.no-bullet {list-style: none} 57--> 58</style> 59 60 61</head> 62 63<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000"> 64<a name="Packets"></a> 65<div class="header"> 66<p> 67Next: <a href="Stop-Reply-Packets.html#Stop-Reply-Packets" accesskey="n" rel="next">Stop Reply Packets</a>, Previous: <a href="Overview.html#Overview" accesskey="p" rel="previous">Overview</a>, Up: <a href="Remote-Protocol.html#Remote-Protocol" accesskey="u" rel="up">Remote Protocol</a> [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="Concept-Index.html#Concept-Index" title="Index" rel="index">Index</a>]</p> 68</div> 69<hr> 70<a name="Packets-1"></a> 71<h3 class="section">E.2 Packets</h3> 72 73<p>The following table provides a complete list of all currently defined 74<var>command</var>s and their corresponding response <var>data</var>. 75See <a href="File_002dI_002fO-Remote-Protocol-Extension.html#File_002dI_002fO-Remote-Protocol-Extension">File-I/O Remote Protocol Extension</a>, for details about the File 76I/O extension of the remote protocol. 77</p> 78<p>Each packet’s description has a template showing the packet’s overall 79syntax, followed by an explanation of the packet’s meaning. We 80include spaces in some of the templates for clarity; these are not 81part of the packet’s syntax. No <small>GDB</small> packet uses spaces to 82separate its components. For example, a template like ‘<samp>foo 83<var>bar</var> <var>baz</var></samp>’ describes a packet beginning with the three ASCII 84bytes ‘<samp>foo</samp>’, followed by a <var>bar</var>, followed directly by a 85<var>baz</var>. <small>GDB</small> does not transmit a space character between the 86‘<samp>foo</samp>’ and the <var>bar</var>, or between the <var>bar</var> and the 87<var>baz</var>. 88</p> 89<a name="index-thread_002did_002c-in-remote-protocol"></a> 90<a name="thread_002did-syntax"></a><p>Several packets and replies include a <var>thread-id</var> field to identify 91a thread. Normally these are positive numbers with a target-specific 92interpretation, formatted as big-endian hex strings. A <var>thread-id</var> 93can also be a literal ‘<samp>-1</samp>’ to indicate all threads, or ‘<samp>0</samp>’ to 94pick any thread. 95</p> 96<p>In addition, the remote protocol supports a multiprocess feature in 97which the <var>thread-id</var> syntax is extended to optionally include both 98process and thread ID fields, as ‘<samp>p<var>pid</var>.<var>tid</var></samp>’. 99The <var>pid</var> (process) and <var>tid</var> (thread) components each have the 100format described above: a positive number with target-specific 101interpretation formatted as a big-endian hex string, literal ‘<samp>-1</samp>’ 102to indicate all processes or threads (respectively), or ‘<samp>0</samp>’ to 103indicate an arbitrary process or thread. Specifying just a process, as 104‘<samp>p<var>pid</var></samp>’, is equivalent to ‘<samp>p<var>pid</var>.-1</samp>’. It is an 105error to specify all processes but a specific thread, such as 106‘<samp>p-1.<var>tid</var></samp>’. Note that the ‘<samp>p</samp>’ prefix is <em>not</em> used 107for those packets and replies explicitly documented to include a process 108ID, rather than a <var>thread-id</var>. 109</p> 110<p>The multiprocess <var>thread-id</var> syntax extensions are only used if both 111<small>GDB</small> and the stub report support for the ‘<samp>multiprocess</samp>’ 112feature using ‘<samp>qSupported</samp>’. See <a href="General-Query-Packets.html#multiprocess-extensions">multiprocess extensions</a>, for 113more information. 114</p> 115<p>Note that all packet forms beginning with an upper- or lower-case 116letter, other than those described here, are reserved for future use. 117</p> 118<p>Here are the packet descriptions. 119</p> 120<dl compact="compact"> 121<dt>‘<samp>!</samp>’</dt> 122<dd><a name="index-_0021-packet"></a> 123<a name="extended-mode"></a><p>Enable extended mode. In extended mode, the remote server is made 124persistent. The ‘<samp>R</samp>’ packet is used to restart the program being 125debugged. 126</p> 127<p>Reply: 128</p><dl compact="compact"> 129<dt>‘<samp>OK</samp>’</dt> 130<dd><p>The remote target both supports and has enabled extended mode. 131</p></dd> 132</dl> 133 134</dd> 135<dt>‘<samp>?</samp>’</dt> 136<dd><a name="index-_003f-packet"></a> 137<a name="g_t_003f-packet"></a><p>Indicate the reason the target halted. The reply is the same as for 138step and continue. This packet has a special interpretation when the 139target is in non-stop mode; see <a href="Remote-Non_002dStop.html#Remote-Non_002dStop">Remote Non-Stop</a>. 140</p> 141<p>Reply: 142See <a href="Stop-Reply-Packets.html#Stop-Reply-Packets">Stop Reply Packets</a>, for the reply specifications. 143</p> 144</dd> 145<dt>‘<samp>A <var>arglen</var>,<var>argnum</var>,<var>arg</var>,…</samp>’</dt> 146<dd><a name="index-A-packet"></a> 147<p>Initialized <code>argv[]</code> array passed into program. <var>arglen</var> 148specifies the number of bytes in the hex encoded byte stream 149<var>arg</var>. See <code>gdbserver</code> for more details. 150</p> 151<p>Reply: 152</p><dl compact="compact"> 153<dt>‘<samp>OK</samp>’</dt> 154<dd><p>The arguments were set. 155</p></dd> 156<dt>‘<samp>E <var>NN</var></samp>’</dt> 157<dd><p>An error occurred. 158</p></dd> 159</dl> 160 161</dd> 162<dt>‘<samp>b <var>baud</var></samp>’</dt> 163<dd><a name="index-b-packet"></a> 164<p>(Don’t use this packet; its behavior is not well-defined.) 165Change the serial line speed to <var>baud</var>. 166</p> 167<p>JTC: <em>When does the transport layer state change? When it’s 168received, or after the ACK is transmitted. In either case, there are 169problems if the command or the acknowledgment packet is dropped.</em> 170</p> 171<p>Stan: <em>If people really wanted to add something like this, and get 172it working for the first time, they ought to modify ser-unix.c to send 173some kind of out-of-band message to a specially-setup stub and have the 174switch happen "in between" packets, so that from remote protocol’s point 175of view, nothing actually happened.</em> 176</p> 177</dd> 178<dt>‘<samp>B <var>addr</var>,<var>mode</var></samp>’</dt> 179<dd><a name="index-B-packet"></a> 180<p>Set (<var>mode</var> is ‘<samp>S</samp>’) or clear (<var>mode</var> is ‘<samp>C</samp>’) a 181breakpoint at <var>addr</var>. 182</p> 183<p>Don’t use this packet. Use the ‘<samp>Z</samp>’ and ‘<samp>z</samp>’ packets instead 184(see <a href="#insert-breakpoint-or-watchpoint-packet">insert breakpoint or watchpoint packet</a>). 185</p> 186<a name="index-bc-packet"></a> 187<a name="bc"></a></dd> 188<dt>‘<samp>bc</samp>’</dt> 189<dd><p>Backward continue. Execute the target system in reverse. No parameter. 190See <a href="Reverse-Execution.html#Reverse-Execution">Reverse Execution</a>, for more information. 191</p> 192<p>Reply: 193See <a href="Stop-Reply-Packets.html#Stop-Reply-Packets">Stop Reply Packets</a>, for the reply specifications. 194</p> 195<a name="index-bs-packet"></a> 196<a name="bs"></a></dd> 197<dt>‘<samp>bs</samp>’</dt> 198<dd><p>Backward single step. Execute one instruction in reverse. No parameter. 199See <a href="Reverse-Execution.html#Reverse-Execution">Reverse Execution</a>, for more information. 200</p> 201<p>Reply: 202See <a href="Stop-Reply-Packets.html#Stop-Reply-Packets">Stop Reply Packets</a>, for the reply specifications. 203</p> 204</dd> 205<dt>‘<samp>c <span class="roman">[</span><var>addr</var><span class="roman">]</span></samp>’</dt> 206<dd><a name="index-c-packet"></a> 207<p>Continue at <var>addr</var>, which is the address to resume. If <var>addr</var> 208is omitted, resume at current address. 209</p> 210<p>This packet is deprecated for multi-threading support. See <a href="#vCont-packet">vCont packet</a>. 211</p> 212<p>Reply: 213See <a href="Stop-Reply-Packets.html#Stop-Reply-Packets">Stop Reply Packets</a>, for the reply specifications. 214</p> 215</dd> 216<dt>‘<samp>C <var>sig</var><span class="roman">[</span>;<var>addr</var><span class="roman">]</span></samp>’</dt> 217<dd><a name="index-C-packet"></a> 218<p>Continue with signal <var>sig</var> (hex signal number). If 219‘<samp>;<var>addr</var></samp>’ is omitted, resume at same address. 220</p> 221<p>This packet is deprecated for multi-threading support. See <a href="#vCont-packet">vCont packet</a>. 222</p> 223<p>Reply: 224See <a href="Stop-Reply-Packets.html#Stop-Reply-Packets">Stop Reply Packets</a>, for the reply specifications. 225</p> 226</dd> 227<dt>‘<samp>d</samp>’</dt> 228<dd><a name="index-d-packet"></a> 229<p>Toggle debug flag. 230</p> 231<p>Don’t use this packet; instead, define a general set packet 232(see <a href="General-Query-Packets.html#General-Query-Packets">General Query Packets</a>). 233</p> 234</dd> 235<dt>‘<samp>D</samp>’</dt> 236<dt>‘<samp>D;<var>pid</var></samp>’</dt> 237<dd><a name="index-D-packet"></a> 238<p>The first form of the packet is used to detach <small>GDB</small> from the 239remote system. It is sent to the remote target 240before <small>GDB</small> disconnects via the <code>detach</code> command. 241</p> 242<p>The second form, including a process ID, is used when multiprocess 243protocol extensions are enabled (see <a href="General-Query-Packets.html#multiprocess-extensions">multiprocess extensions</a>), to 244detach only a specific process. The <var>pid</var> is specified as a 245big-endian hex string. 246</p> 247<p>Reply: 248</p><dl compact="compact"> 249<dt>‘<samp>OK</samp>’</dt> 250<dd><p>for success 251</p></dd> 252<dt>‘<samp>E <var>NN</var></samp>’</dt> 253<dd><p>for an error 254</p></dd> 255</dl> 256 257</dd> 258<dt>‘<samp>F <var>RC</var>,<var>EE</var>,<var>CF</var>;<var>XX</var></samp>’</dt> 259<dd><a name="index-F-packet"></a> 260<p>A reply from <small>GDB</small> to an ‘<samp>F</samp>’ packet sent by the target. 261This is part of the File-I/O protocol extension. See <a href="File_002dI_002fO-Remote-Protocol-Extension.html#File_002dI_002fO-Remote-Protocol-Extension">File-I/O Remote Protocol Extension</a>, for the specification. 262</p> 263</dd> 264<dt>‘<samp>g</samp>’</dt> 265<dd><a name="read-registers-packet"></a><a name="index-g-packet"></a> 266<p>Read general registers. 267</p> 268<p>Reply: 269</p><dl compact="compact"> 270<dt>‘<samp><var>XX…</var></samp>’</dt> 271<dd><p>Each byte of register data is described by two hex digits. The bytes 272with the register are transmitted in target byte order. The size of 273each register and their position within the ‘<samp>g</samp>’ packet are 274determined by the <small>GDB</small> internal gdbarch functions 275<code>DEPRECATED_REGISTER_RAW_SIZE</code> and <code>gdbarch_register_name</code>. 276</p> 277<p>When reading registers from a trace frame (see <a href="Analyze-Collected-Data.html#Analyze-Collected-Data">Using the Collected Data</a>), the stub may also return a string of 278literal ‘<samp>x</samp>’’s in place of the register data digits, to indicate 279that the corresponding register has not been collected, thus its value 280is unavailable. For example, for an architecture with 4 registers of 2814 bytes each, the following reply indicates to <small>GDB</small> that 282registers 0 and 2 have not been collected, while registers 1 and 3 283have been collected, and both have zero value: 284</p> 285<div class="smallexample"> 286<pre class="smallexample">-> <code>g</code> 287<- <code>xxxxxxxx00000000xxxxxxxx00000000</code> 288</pre></div> 289 290</dd> 291<dt>‘<samp>E <var>NN</var></samp>’</dt> 292<dd><p>for an error. 293</p></dd> 294</dl> 295 296</dd> 297<dt>‘<samp>G <var>XX…</var></samp>’</dt> 298<dd><a name="index-G-packet"></a> 299<p>Write general registers. See <a href="#read-registers-packet">read registers packet</a>, for a 300description of the <var>XX…</var> data. 301</p> 302<p>Reply: 303</p><dl compact="compact"> 304<dt>‘<samp>OK</samp>’</dt> 305<dd><p>for success 306</p></dd> 307<dt>‘<samp>E <var>NN</var></samp>’</dt> 308<dd><p>for an error 309</p></dd> 310</dl> 311 312</dd> 313<dt>‘<samp>H <var>op</var> <var>thread-id</var></samp>’</dt> 314<dd><a name="index-H-packet"></a> 315<p>Set thread for subsequent operations (‘<samp>m</samp>’, ‘<samp>M</samp>’, ‘<samp>g</samp>’, 316‘<samp>G</samp>’, et.al.). Depending on the operation to be performed, <var>op</var> 317should be ‘<samp>c</samp>’ for step and continue operations (note that this 318is deprecated, supporting the ‘<samp>vCont</samp>’ command is a better 319option), and ‘<samp>g</samp>’ for other operations. The thread designator 320<var>thread-id</var> has the format and interpretation described in 321<a href="#thread_002did-syntax">thread-id syntax</a>. 322</p> 323<p>Reply: 324</p><dl compact="compact"> 325<dt>‘<samp>OK</samp>’</dt> 326<dd><p>for success 327</p></dd> 328<dt>‘<samp>E <var>NN</var></samp>’</dt> 329<dd><p>for an error 330</p></dd> 331</dl> 332 333 334</dd> 335<dt>‘<samp>i <span class="roman">[</span><var>addr</var><span class="roman">[</span>,<var>nnn</var><span class="roman">]]</span></samp>’</dt> 336<dd><a name="cycle-step-packet"></a><a name="index-i-packet"></a> 337<p>Step the remote target by a single clock cycle. If ‘<samp>,<var>nnn</var></samp>’ is 338present, cycle step <var>nnn</var> cycles. If <var>addr</var> is present, cycle 339step starting at that address. 340</p> 341</dd> 342<dt>‘<samp>I</samp>’</dt> 343<dd><a name="index-I-packet"></a> 344<p>Signal, then cycle step. See <a href="#step-with-signal-packet">step with signal packet</a>. See <a href="#cycle-step-packet">cycle step packet</a>. 345</p> 346</dd> 347<dt>‘<samp>k</samp>’</dt> 348<dd><a name="index-k-packet"></a> 349<p>Kill request. 350</p> 351<p>The exact effect of this packet is not specified. 352</p> 353<p>For a bare-metal target, it may power cycle or reset the target 354system. For that reason, the ‘<samp>k</samp>’ packet has no reply. 355</p> 356<p>For a single-process target, it may kill that process if possible. 357</p> 358<p>A multiple-process target may choose to kill just one process, or all 359that are under <small>GDB</small>’s control. For more precise control, use 360the vKill packet (see <a href="#vKill-packet">vKill packet</a>). 361</p> 362<p>If the target system immediately closes the connection in response to 363‘<samp>k</samp>’, <small>GDB</small> does not consider the lack of packet 364acknowledgment to be an error, and assumes the kill was successful. 365</p> 366<p>If connected using <kbd>target extended-remote</kbd>, and the target does 367not close the connection in response to a kill request, <small>GDB</small> 368probes the target state as if a new connection was opened 369(see <a href="#g_t_003f-packet">? packet</a>). 370</p> 371</dd> 372<dt>‘<samp>m <var>addr</var>,<var>length</var></samp>’</dt> 373<dd><a name="index-m-packet"></a> 374<p>Read <var>length</var> addressable memory units starting at address <var>addr</var> 375(see <a href="Memory.html#addressable-memory-unit">addressable memory unit</a>). Note that <var>addr</var> may not be aligned to 376any particular boundary. 377</p> 378<p>The stub need not use any particular size or alignment when gathering 379data from memory for the response; even if <var>addr</var> is word-aligned 380and <var>length</var> is a multiple of the word size, the stub is free to 381use byte accesses, or not. For this reason, this packet may not be 382suitable for accessing memory-mapped I/O devices. 383<a name="index-alignment-of-remote-memory-accesses"></a> 384<a name="index-size-of-remote-memory-accesses"></a> 385<a name="index-memory_002c-alignment-and-size-of-remote-accesses"></a> 386</p> 387<p>Reply: 388</p><dl compact="compact"> 389<dt>‘<samp><var>XX…</var></samp>’</dt> 390<dd><p>Memory contents; each byte is transmitted as a two-digit hexadecimal number. 391The reply may contain fewer addressable memory units than requested if the 392server was able to read only part of the region of memory. 393</p></dd> 394<dt>‘<samp>E <var>NN</var></samp>’</dt> 395<dd><p><var>NN</var> is errno 396</p></dd> 397</dl> 398 399</dd> 400<dt>‘<samp>M <var>addr</var>,<var>length</var>:<var>XX…</var></samp>’</dt> 401<dd><a name="index-M-packet"></a> 402<p>Write <var>length</var> addressable memory units starting at address <var>addr</var> 403(see <a href="Memory.html#addressable-memory-unit">addressable memory unit</a>). The data is given by <var>XX…</var>; each 404byte is transmitted as a two-digit hexadecimal number. 405</p> 406<p>Reply: 407</p><dl compact="compact"> 408<dt>‘<samp>OK</samp>’</dt> 409<dd><p>for success 410</p></dd> 411<dt>‘<samp>E <var>NN</var></samp>’</dt> 412<dd><p>for an error (this includes the case where only part of the data was 413written). 414</p></dd> 415</dl> 416 417</dd> 418<dt>‘<samp>p <var>n</var></samp>’</dt> 419<dd><a name="index-p-packet"></a> 420<p>Read the value of register <var>n</var>; <var>n</var> is in hex. 421See <a href="#read-registers-packet">read registers packet</a>, for a description of how the returned 422register value is encoded. 423</p> 424<p>Reply: 425</p><dl compact="compact"> 426<dt>‘<samp><var>XX…</var></samp>’</dt> 427<dd><p>the register’s value 428</p></dd> 429<dt>‘<samp>E <var>NN</var></samp>’</dt> 430<dd><p>for an error 431</p></dd> 432<dt>‘<samp><!-- /@w --></samp>’</dt> 433<dd><p>Indicating an unrecognized <var>query</var>. 434</p></dd> 435</dl> 436 437</dd> 438<dt>‘<samp>P <var>n…</var>=<var>r…</var></samp>’</dt> 439<dd><a name="write-register-packet"></a><a name="index-P-packet"></a> 440<p>Write register <var>n…</var> with value <var>r…</var>. The register 441number <var>n</var> is in hexadecimal, and <var>r…</var> contains two hex 442digits for each byte in the register (target byte order). 443</p> 444<p>Reply: 445</p><dl compact="compact"> 446<dt>‘<samp>OK</samp>’</dt> 447<dd><p>for success 448</p></dd> 449<dt>‘<samp>E <var>NN</var></samp>’</dt> 450<dd><p>for an error 451</p></dd> 452</dl> 453 454</dd> 455<dt>‘<samp>q <var>name</var> <var>params</var>…</samp>’</dt> 456<dt>‘<samp>Q <var>name</var> <var>params</var>…</samp>’</dt> 457<dd><a name="index-q-packet"></a> 458<a name="index-Q-packet"></a> 459<p>General query (‘<samp>q</samp>’) and set (‘<samp>Q</samp>’). These packets are 460described fully in <a href="General-Query-Packets.html#General-Query-Packets">General Query Packets</a>. 461</p> 462</dd> 463<dt>‘<samp>r</samp>’</dt> 464<dd><a name="index-r-packet"></a> 465<p>Reset the entire system. 466</p> 467<p>Don’t use this packet; use the ‘<samp>R</samp>’ packet instead. 468</p> 469</dd> 470<dt>‘<samp>R <var>XX</var></samp>’</dt> 471<dd><a name="index-R-packet"></a> 472<p>Restart the program being debugged. The <var>XX</var>, while needed, is ignored. 473This packet is only available in extended mode (see <a href="#extended-mode">extended mode</a>). 474</p> 475<p>The ‘<samp>R</samp>’ packet has no reply. 476</p> 477</dd> 478<dt>‘<samp>s <span class="roman">[</span><var>addr</var><span class="roman">]</span></samp>’</dt> 479<dd><a name="index-s-packet"></a> 480<p>Single step, resuming at <var>addr</var>. If 481<var>addr</var> is omitted, resume at same address. 482</p> 483<p>This packet is deprecated for multi-threading support. See <a href="#vCont-packet">vCont packet</a>. 484</p> 485<p>Reply: 486See <a href="Stop-Reply-Packets.html#Stop-Reply-Packets">Stop Reply Packets</a>, for the reply specifications. 487</p> 488</dd> 489<dt>‘<samp>S <var>sig</var><span class="roman">[</span>;<var>addr</var><span class="roman">]</span></samp>’</dt> 490<dd><a name="step-with-signal-packet"></a><a name="index-S-packet"></a> 491<p>Step with signal. This is analogous to the ‘<samp>C</samp>’ packet, but 492requests a single-step, rather than a normal resumption of execution. 493</p> 494<p>This packet is deprecated for multi-threading support. See <a href="#vCont-packet">vCont packet</a>. 495</p> 496<p>Reply: 497See <a href="Stop-Reply-Packets.html#Stop-Reply-Packets">Stop Reply Packets</a>, for the reply specifications. 498</p> 499</dd> 500<dt>‘<samp>t <var>addr</var>:<var>PP</var>,<var>MM</var></samp>’</dt> 501<dd><a name="index-t-packet"></a> 502<p>Search backwards starting at address <var>addr</var> for a match with pattern 503<var>PP</var> and mask <var>MM</var>, both of which are are 4 byte long. 504There must be at least 3 digits in <var>addr</var>. 505</p> 506</dd> 507<dt>‘<samp>T <var>thread-id</var></samp>’</dt> 508<dd><a name="index-T-packet"></a> 509<p>Find out if the thread <var>thread-id</var> is alive. See <a href="#thread_002did-syntax">thread-id syntax</a>. 510</p> 511<p>Reply: 512</p><dl compact="compact"> 513<dt>‘<samp>OK</samp>’</dt> 514<dd><p>thread is still alive 515</p></dd> 516<dt>‘<samp>E <var>NN</var></samp>’</dt> 517<dd><p>thread is dead 518</p></dd> 519</dl> 520 521</dd> 522<dt>‘<samp>v</samp>’</dt> 523<dd><p>Packets starting with ‘<samp>v</samp>’ are identified by a multi-letter name, 524up to the first ‘<samp>;</samp>’ or ‘<samp>?</samp>’ (or the end of the packet). 525</p> 526</dd> 527<dt>‘<samp>vAttach;<var>pid</var></samp>’</dt> 528<dd><a name="index-vAttach-packet"></a> 529<p>Attach to a new process with the specified process ID <var>pid</var>. 530The process ID is a 531hexadecimal integer identifying the process. In all-stop mode, all 532threads in the attached process are stopped; in non-stop mode, it may be 533attached without being stopped if that is supported by the target. 534</p> 535 536<p>This packet is only available in extended mode (see <a href="#extended-mode">extended mode</a>). 537</p> 538<p>Reply: 539</p><dl compact="compact"> 540<dt>‘<samp>E <var>nn</var></samp>’</dt> 541<dd><p>for an error 542</p></dd> 543<dt>‘<samp><span class="roman">Any stop packet</span></samp>’</dt> 544<dd><p>for success in all-stop mode (see <a href="Stop-Reply-Packets.html#Stop-Reply-Packets">Stop Reply Packets</a>) 545</p></dd> 546<dt>‘<samp>OK</samp>’</dt> 547<dd><p>for success in non-stop mode (see <a href="Remote-Non_002dStop.html#Remote-Non_002dStop">Remote Non-Stop</a>) 548</p></dd> 549</dl> 550 551</dd> 552<dt>‘<samp>vCont<span class="roman">[</span>;<var>action</var><span class="roman">[</span>:<var>thread-id</var><span class="roman">]]</span>…</samp>’</dt> 553<dd><a name="index-vCont-packet"></a> 554<a name="vCont-packet"></a><p>Resume the inferior, specifying different actions for each thread. 555</p> 556<p>For each inferior thread, the leftmost action with a matching 557<var>thread-id</var> is applied. Threads that don’t match any action 558remain in their current state. Thread IDs are specified using the 559syntax described in <a href="#thread_002did-syntax">thread-id syntax</a>. If multiprocess 560extensions (see <a href="General-Query-Packets.html#multiprocess-extensions">multiprocess extensions</a>) are supported, actions 561can be specified to match all threads in a process by using the 562‘<samp>p<var>pid</var>.-1</samp>’ form of the <var>thread-id</var>. An action with no 563<var>thread-id</var> matches all threads. Specifying no actions is an 564error. 565</p> 566<p>Currently supported actions are: 567</p> 568<dl compact="compact"> 569<dt>‘<samp>c</samp>’</dt> 570<dd><p>Continue. 571</p></dd> 572<dt>‘<samp>C <var>sig</var></samp>’</dt> 573<dd><p>Continue with signal <var>sig</var>. The signal <var>sig</var> should be two hex digits. 574</p></dd> 575<dt>‘<samp>s</samp>’</dt> 576<dd><p>Step. 577</p></dd> 578<dt>‘<samp>S <var>sig</var></samp>’</dt> 579<dd><p>Step with signal <var>sig</var>. The signal <var>sig</var> should be two hex digits. 580</p></dd> 581<dt>‘<samp>t</samp>’</dt> 582<dd><p>Stop. 583</p></dd> 584<dt>‘<samp>r <var>start</var>,<var>end</var></samp>’</dt> 585<dd><p>Step once, and then keep stepping as long as the thread stops at 586addresses between <var>start</var> (inclusive) and <var>end</var> (exclusive). 587The remote stub reports a stop reply when either the thread goes out 588of the range or is stopped due to an unrelated reason, such as hitting 589a breakpoint. See <a href="Continuing-and-Stepping.html#range-stepping">range stepping</a>. 590</p> 591<p>If the range is empty (<var>start</var> == <var>end</var>), then the action 592becomes equivalent to the ‘<samp>s</samp>’ action. In other words, 593single-step once, and report the stop (even if the stepped instruction 594jumps to <var>start</var>). 595</p> 596<p>(A stop reply may be sent at any point even if the PC is still within 597the stepping range; for example, it is valid to implement this packet 598in a degenerate way as a single instruction step operation.) 599</p> 600</dd> 601</dl> 602 603<p>The optional argument <var>addr</var> normally associated with the 604‘<samp>c</samp>’, ‘<samp>C</samp>’, ‘<samp>s</samp>’, and ‘<samp>S</samp>’ packets is 605not supported in ‘<samp>vCont</samp>’. 606</p> 607<p>The ‘<samp>t</samp>’ action is only relevant in non-stop mode 608(see <a href="Remote-Non_002dStop.html#Remote-Non_002dStop">Remote Non-Stop</a>) and may be ignored by the stub otherwise. 609A stop reply should be generated for any affected thread not already stopped. 610When a thread is stopped by means of a ‘<samp>t</samp>’ action, 611the corresponding stop reply should indicate that the thread has stopped with 612signal ‘<samp>0</samp>’, regardless of whether the target uses some other signal 613as an implementation detail. 614</p> 615<p>The server must ignore ‘<samp>c</samp>’, ‘<samp>C</samp>’, ‘<samp>s</samp>’, ‘<samp>S</samp>’, and 616‘<samp>r</samp>’ actions for threads that are already running. Conversely, 617the server must ignore ‘<samp>t</samp>’ actions for threads that are already 618stopped. 619</p> 620<p><em>Note:</em> In non-stop mode, a thread is considered running until 621<small>GDB</small> acknowledges an asynchronous stop notification for it with 622the ‘<samp>vStopped</samp>’ packet (see <a href="Remote-Non_002dStop.html#Remote-Non_002dStop">Remote Non-Stop</a>). 623</p> 624<p>The stub must support ‘<samp>vCont</samp>’ if it reports support for 625multiprocess extensions (see <a href="General-Query-Packets.html#multiprocess-extensions">multiprocess extensions</a>). 626</p> 627<p>Reply: 628See <a href="Stop-Reply-Packets.html#Stop-Reply-Packets">Stop Reply Packets</a>, for the reply specifications. 629</p> 630</dd> 631<dt>‘<samp>vCont?</samp>’</dt> 632<dd><a name="index-vCont_003f-packet"></a> 633<p>Request a list of actions supported by the ‘<samp>vCont</samp>’ packet. 634</p> 635<p>Reply: 636</p><dl compact="compact"> 637<dt>‘<samp>vCont<span class="roman">[</span>;<var>action</var>…<span class="roman">]</span></samp>’</dt> 638<dd><p>The ‘<samp>vCont</samp>’ packet is supported. Each <var>action</var> is a supported 639command in the ‘<samp>vCont</samp>’ packet. 640</p></dd> 641<dt>‘<samp><!-- /@w --></samp>’</dt> 642<dd><p>The ‘<samp>vCont</samp>’ packet is not supported. 643</p></dd> 644</dl> 645 646<a name="vCtrlC-packet"></a></dd> 647<dt>‘<samp>vCtrlC</samp>’</dt> 648<dd><a name="index-vCtrlC-packet"></a> 649<p>Interrupt remote target as if a control-C was pressed on the remote 650terminal. This is the equivalent to reacting to the <code>^C</code> 651(‘<samp>\003</samp>’, the control-C character) character in all-stop mode 652while the target is running, except this works in non-stop mode. 653See <a href="Interrupts.html#interrupting-remote-targets">interrupting remote targets</a>, for more info on the all-stop 654variant. 655</p> 656<p>Reply: 657</p><dl compact="compact"> 658<dt>‘<samp>E <var>nn</var></samp>’</dt> 659<dd><p>for an error 660</p></dd> 661<dt>‘<samp>OK</samp>’</dt> 662<dd><p>for success 663</p></dd> 664</dl> 665 666</dd> 667<dt>‘<samp>vFile:<var>operation</var>:<var>parameter</var>…</samp>’</dt> 668<dd><a name="index-vFile-packet"></a> 669<p>Perform a file operation on the target system. For details, 670see <a href="Host-I_002fO-Packets.html#Host-I_002fO-Packets">Host I/O Packets</a>. 671</p> 672</dd> 673<dt>‘<samp>vFlashErase:<var>addr</var>,<var>length</var></samp>’</dt> 674<dd><a name="index-vFlashErase-packet"></a> 675<p>Direct the stub to erase <var>length</var> bytes of flash starting at 676<var>addr</var>. The region may enclose any number of flash blocks, but 677its start and end must fall on block boundaries, as indicated by the 678flash block size appearing in the memory map (see <a href="Memory-Map-Format.html#Memory-Map-Format">Memory Map Format</a>). <small>GDB</small> groups flash memory programming operations 679together, and sends a ‘<samp>vFlashDone</samp>’ request after each group; the 680stub is allowed to delay erase operation until the ‘<samp>vFlashDone</samp>’ 681packet is received. 682</p> 683<p>Reply: 684</p><dl compact="compact"> 685<dt>‘<samp>OK</samp>’</dt> 686<dd><p>for success 687</p></dd> 688<dt>‘<samp>E <var>NN</var></samp>’</dt> 689<dd><p>for an error 690</p></dd> 691</dl> 692 693</dd> 694<dt>‘<samp>vFlashWrite:<var>addr</var>:<var>XX…</var></samp>’</dt> 695<dd><a name="index-vFlashWrite-packet"></a> 696<p>Direct the stub to write data to flash address <var>addr</var>. The data 697is passed in binary form using the same encoding as for the ‘<samp>X</samp>’ 698packet (see <a href="Overview.html#Binary-Data">Binary Data</a>). The memory ranges specified by 699‘<samp>vFlashWrite</samp>’ packets preceding a ‘<samp>vFlashDone</samp>’ packet must 700not overlap, and must appear in order of increasing addresses 701(although ‘<samp>vFlashErase</samp>’ packets for higher addresses may already 702have been received; the ordering is guaranteed only between 703‘<samp>vFlashWrite</samp>’ packets). If a packet writes to an address that was 704neither erased by a preceding ‘<samp>vFlashErase</samp>’ packet nor by some other 705target-specific method, the results are unpredictable. 706</p> 707 708<p>Reply: 709</p><dl compact="compact"> 710<dt>‘<samp>OK</samp>’</dt> 711<dd><p>for success 712</p></dd> 713<dt>‘<samp>E.memtype</samp>’</dt> 714<dd><p>for vFlashWrite addressing non-flash memory 715</p></dd> 716<dt>‘<samp>E <var>NN</var></samp>’</dt> 717<dd><p>for an error 718</p></dd> 719</dl> 720 721</dd> 722<dt>‘<samp>vFlashDone</samp>’</dt> 723<dd><a name="index-vFlashDone-packet"></a> 724<p>Indicate to the stub that flash programming operation is finished. 725The stub is permitted to delay or batch the effects of a group of 726‘<samp>vFlashErase</samp>’ and ‘<samp>vFlashWrite</samp>’ packets until a 727‘<samp>vFlashDone</samp>’ packet is received. The contents of the affected 728regions of flash memory are unpredictable until the ‘<samp>vFlashDone</samp>’ 729request is completed. 730</p> 731</dd> 732<dt>‘<samp>vKill;<var>pid</var></samp>’</dt> 733<dd><a name="index-vKill-packet"></a> 734<a name="vKill-packet"></a><p>Kill the process with the specified process ID <var>pid</var>, which is a 735hexadecimal integer identifying the process. This packet is used in 736preference to ‘<samp>k</samp>’ when multiprocess protocol extensions are 737supported; see <a href="General-Query-Packets.html#multiprocess-extensions">multiprocess extensions</a>. 738</p> 739<p>Reply: 740</p><dl compact="compact"> 741<dt>‘<samp>E <var>nn</var></samp>’</dt> 742<dd><p>for an error 743</p></dd> 744<dt>‘<samp>OK</samp>’</dt> 745<dd><p>for success 746</p></dd> 747</dl> 748 749</dd> 750<dt>‘<samp>vMustReplyEmpty</samp>’</dt> 751<dd><a name="index-vMustReplyEmpty-packet"></a> 752<p>The correct reply to an unknown ‘<samp>v</samp>’ packet is to return the empty 753string, however, some older versions of <code>gdbserver</code> would 754incorrectly return ‘<samp>OK</samp>’ for unknown ‘<samp>v</samp>’ packets. 755</p> 756<p>The ‘<samp>vMustReplyEmpty</samp>’ is used as a feature test to check how 757<code>gdbserver</code> handles unknown packets, it is important that this 758packet be handled in the same way as other unknown ‘<samp>v</samp>’ packets. 759If this packet is handled differently to other unknown ‘<samp>v</samp>’ 760packets then it is possible that <small>GDB</small> may run into problems in 761other areas, specifically around use of ‘<samp>vFile:setfs:</samp>’. 762</p> 763</dd> 764<dt>‘<samp>vRun;<var>filename</var><span class="roman">[</span>;<var>argument</var><span class="roman">]</span>…</samp>’</dt> 765<dd><a name="index-vRun-packet"></a> 766<p>Run the program <var>filename</var>, passing it each <var>argument</var> on its 767command line. The file and arguments are hex-encoded strings. If 768<var>filename</var> is an empty string, the stub may use a default program 769(e.g. the last program run). The program is created in the stopped 770state. 771</p> 772 773<p>This packet is only available in extended mode (see <a href="#extended-mode">extended mode</a>). 774</p> 775<p>Reply: 776</p><dl compact="compact"> 777<dt>‘<samp>E <var>nn</var></samp>’</dt> 778<dd><p>for an error 779</p></dd> 780<dt>‘<samp><span class="roman">Any stop packet</span></samp>’</dt> 781<dd><p>for success (see <a href="Stop-Reply-Packets.html#Stop-Reply-Packets">Stop Reply Packets</a>) 782</p></dd> 783</dl> 784 785</dd> 786<dt>‘<samp>vStopped</samp>’</dt> 787<dd><a name="index-vStopped-packet"></a> 788<p>See <a href="Notification-Packets.html#Notification-Packets">Notification Packets</a>. 789</p> 790</dd> 791<dt>‘<samp>X <var>addr</var>,<var>length</var>:<var>XX…</var></samp>’</dt> 792<dd><a name="X-packet"></a><a name="index-X-packet"></a> 793<p>Write data to memory, where the data is transmitted in binary. 794Memory is specified by its address <var>addr</var> and number of addressable memory 795units <var>length</var> (see <a href="Memory.html#addressable-memory-unit">addressable memory unit</a>); 796‘<samp><var>XX</var>…</samp>’ is binary data (see <a href="Overview.html#Binary-Data">Binary Data</a>). 797</p> 798<p>Reply: 799</p><dl compact="compact"> 800<dt>‘<samp>OK</samp>’</dt> 801<dd><p>for success 802</p></dd> 803<dt>‘<samp>E <var>NN</var></samp>’</dt> 804<dd><p>for an error 805</p></dd> 806</dl> 807 808</dd> 809<dt>‘<samp>z <var>type</var>,<var>addr</var>,<var>kind</var></samp>’</dt> 810<dt>‘<samp>Z <var>type</var>,<var>addr</var>,<var>kind</var></samp>’</dt> 811<dd><a name="insert-breakpoint-or-watchpoint-packet"></a><a name="index-z-packet"></a> 812<a name="index-Z-packets"></a> 813<p>Insert (‘<samp>Z</samp>’) or remove (‘<samp>z</samp>’) a <var>type</var> breakpoint or 814watchpoint starting at address <var>address</var> of kind <var>kind</var>. 815</p> 816<p>Each breakpoint and watchpoint packet <var>type</var> is documented 817separately. 818</p> 819<p><em>Implementation notes: A remote target shall return an empty string 820for an unrecognized breakpoint or watchpoint packet <var>type</var>. A 821remote target shall support either both or neither of a given 822‘<samp>Z<var>type</var>…</samp>’ and ‘<samp>z<var>type</var>…</samp>’ packet pair. To 823avoid potential problems with duplicate packets, the operations should 824be implemented in an idempotent way.</em> 825</p> 826</dd> 827<dt>‘<samp>z0,<var>addr</var>,<var>kind</var></samp>’</dt> 828<dt>‘<samp>Z0,<var>addr</var>,<var>kind</var><span class="roman">[</span>;<var>cond_list</var>…<span class="roman">]</span><span class="roman">[</span>;cmds:<var>persist</var>,<var>cmd_list</var>…<span class="roman">]</span></samp>’</dt> 829<dd><a name="index-z0-packet"></a> 830<a name="index-Z0-packet"></a> 831<p>Insert (‘<samp>Z0</samp>’) or remove (‘<samp>z0</samp>’) a software breakpoint at address 832<var>addr</var> of type <var>kind</var>. 833</p> 834<p>A software breakpoint is implemented by replacing the instruction at 835<var>addr</var> with a software breakpoint or trap instruction. The 836<var>kind</var> is target-specific and typically indicates the size of the 837breakpoint in bytes that should be inserted. E.g., the <small>ARM</small> and 838<small>MIPS</small> can insert either a 2 or 4 byte breakpoint. Some 839architectures have additional meanings for <var>kind</var> 840(see <a href="Architecture_002dSpecific-Protocol-Details.html#Architecture_002dSpecific-Protocol-Details">Architecture-Specific Protocol Details</a>); if no 841architecture-specific value is being used, it should be ‘<samp>0</samp>’. 842<var>kind</var> is hex-encoded. <var>cond_list</var> is an optional list of 843conditional expressions in bytecode form that should be evaluated on 844the target’s side. These are the conditions that should be taken into 845consideration when deciding if the breakpoint trigger should be 846reported back to <small>GDB</small>. 847</p> 848<p>See also the ‘<samp>swbreak</samp>’ stop reason (see <a href="Stop-Reply-Packets.html#swbreak-stop-reason">swbreak stop reason</a>) 849for how to best report a software breakpoint event to <small>GDB</small>. 850</p> 851<p>The <var>cond_list</var> parameter is comprised of a series of expressions, 852concatenated without separators. Each expression has the following form: 853</p> 854<dl compact="compact"> 855<dt>‘<samp>X <var>len</var>,<var>expr</var></samp>’</dt> 856<dd><p><var>len</var> is the length of the bytecode expression and <var>expr</var> is the 857actual conditional expression in bytecode form. 858</p> 859</dd> 860</dl> 861 862<p>The optional <var>cmd_list</var> parameter introduces commands that may be 863run on the target, rather than being reported back to <small>GDB</small>. 864The parameter starts with a numeric flag <var>persist</var>; if the flag is 865nonzero, then the breakpoint may remain active and the commands 866continue to be run even when <small>GDB</small> disconnects from the target. 867Following this flag is a series of expressions concatenated with no 868separators. Each expression has the following form: 869</p> 870<dl compact="compact"> 871<dt>‘<samp>X <var>len</var>,<var>expr</var></samp>’</dt> 872<dd><p><var>len</var> is the length of the bytecode expression and <var>expr</var> is the 873actual commands expression in bytecode form. 874</p> 875</dd> 876</dl> 877 878<p><em>Implementation note: It is possible for a target to copy or move 879code that contains software breakpoints (e.g., when implementing 880overlays). The behavior of this packet, in the presence of such a 881target, is not defined.</em> 882</p> 883<p>Reply: 884</p><dl compact="compact"> 885<dt>‘<samp>OK</samp>’</dt> 886<dd><p>success 887</p></dd> 888<dt>‘<samp><!-- /@w --></samp>’</dt> 889<dd><p>not supported 890</p></dd> 891<dt>‘<samp>E <var>NN</var></samp>’</dt> 892<dd><p>for an error 893</p></dd> 894</dl> 895 896</dd> 897<dt>‘<samp>z1,<var>addr</var>,<var>kind</var></samp>’</dt> 898<dt>‘<samp>Z1,<var>addr</var>,<var>kind</var><span class="roman">[</span>;<var>cond_list</var>…<span class="roman">]</span><span class="roman">[</span>;cmds:<var>persist</var>,<var>cmd_list</var>…<span class="roman">]</span></samp>’</dt> 899<dd><a name="index-z1-packet"></a> 900<a name="index-Z1-packet"></a> 901<p>Insert (‘<samp>Z1</samp>’) or remove (‘<samp>z1</samp>’) a hardware breakpoint at 902address <var>addr</var>. 903</p> 904<p>A hardware breakpoint is implemented using a mechanism that is not 905dependent on being able to modify the target’s memory. The 906<var>kind</var>, <var>cond_list</var>, and <var>cmd_list</var> arguments have the 907same meaning as in ‘<samp>Z0</samp>’ packets. 908</p> 909<p><em>Implementation note: A hardware breakpoint is not affected by code 910movement.</em> 911</p> 912<p>Reply: 913</p><dl compact="compact"> 914<dt>‘<samp>OK</samp>’</dt> 915<dd><p>success 916</p></dd> 917<dt>‘<samp><!-- /@w --></samp>’</dt> 918<dd><p>not supported 919</p></dd> 920<dt>‘<samp>E <var>NN</var></samp>’</dt> 921<dd><p>for an error 922</p></dd> 923</dl> 924 925</dd> 926<dt>‘<samp>z2,<var>addr</var>,<var>kind</var></samp>’</dt> 927<dt>‘<samp>Z2,<var>addr</var>,<var>kind</var></samp>’</dt> 928<dd><a name="index-z2-packet"></a> 929<a name="index-Z2-packet"></a> 930<p>Insert (‘<samp>Z2</samp>’) or remove (‘<samp>z2</samp>’) a write watchpoint at <var>addr</var>. 931The number of bytes to watch is specified by <var>kind</var>. 932</p> 933<p>Reply: 934</p><dl compact="compact"> 935<dt>‘<samp>OK</samp>’</dt> 936<dd><p>success 937</p></dd> 938<dt>‘<samp><!-- /@w --></samp>’</dt> 939<dd><p>not supported 940</p></dd> 941<dt>‘<samp>E <var>NN</var></samp>’</dt> 942<dd><p>for an error 943</p></dd> 944</dl> 945 946</dd> 947<dt>‘<samp>z3,<var>addr</var>,<var>kind</var></samp>’</dt> 948<dt>‘<samp>Z3,<var>addr</var>,<var>kind</var></samp>’</dt> 949<dd><a name="index-z3-packet"></a> 950<a name="index-Z3-packet"></a> 951<p>Insert (‘<samp>Z3</samp>’) or remove (‘<samp>z3</samp>’) a read watchpoint at <var>addr</var>. 952The number of bytes to watch is specified by <var>kind</var>. 953</p> 954<p>Reply: 955</p><dl compact="compact"> 956<dt>‘<samp>OK</samp>’</dt> 957<dd><p>success 958</p></dd> 959<dt>‘<samp><!-- /@w --></samp>’</dt> 960<dd><p>not supported 961</p></dd> 962<dt>‘<samp>E <var>NN</var></samp>’</dt> 963<dd><p>for an error 964</p></dd> 965</dl> 966 967</dd> 968<dt>‘<samp>z4,<var>addr</var>,<var>kind</var></samp>’</dt> 969<dt>‘<samp>Z4,<var>addr</var>,<var>kind</var></samp>’</dt> 970<dd><a name="index-z4-packet"></a> 971<a name="index-Z4-packet"></a> 972<p>Insert (‘<samp>Z4</samp>’) or remove (‘<samp>z4</samp>’) an access watchpoint at <var>addr</var>. 973The number of bytes to watch is specified by <var>kind</var>. 974</p> 975<p>Reply: 976</p><dl compact="compact"> 977<dt>‘<samp>OK</samp>’</dt> 978<dd><p>success 979</p></dd> 980<dt>‘<samp><!-- /@w --></samp>’</dt> 981<dd><p>not supported 982</p></dd> 983<dt>‘<samp>E <var>NN</var></samp>’</dt> 984<dd><p>for an error 985</p></dd> 986</dl> 987 988</dd> 989</dl> 990 991<hr> 992<div class="header"> 993<p> 994Next: <a href="Stop-Reply-Packets.html#Stop-Reply-Packets" accesskey="n" rel="next">Stop Reply Packets</a>, Previous: <a href="Overview.html#Overview" accesskey="p" rel="previous">Overview</a>, Up: <a href="Remote-Protocol.html#Remote-Protocol" accesskey="u" rel="up">Remote Protocol</a> [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="Concept-Index.html#Concept-Index" title="Index" rel="index">Index</a>]</p> 995</div> 996 997 998 999</body> 1000</html> 1001