Packet-Acknowledgment.html 6.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122
  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-2020 Free Software Foundation, Inc.
  4. Permission is granted to copy, distribute and/or modify this document
  5. under the terms of the GNU Free Documentation License, Version 1.3 or
  6. any later version published by the Free Software Foundation; with the
  7. Invariant Sections being "Free Software" and "Free Software Needs
  8. Free Documentation", with the Front-Cover Texts being "A GNU Manual,"
  9. and with the Back-Cover Texts as in (a) below.
  10. (a) The FSF's Back-Cover Text is: "You are free to copy and modify
  11. this GNU Manual. Buying copies from GNU Press supports the FSF in
  12. developing GNU and promoting software freedom." -->
  13. <!-- Created by GNU Texinfo 5.1, http://www.gnu.org/software/texinfo/ -->
  14. <head>
  15. <title>Debugging with GDB: Packet Acknowledgment</title>
  16. <meta name="description" content="Debugging with GDB: Packet Acknowledgment">
  17. <meta name="keywords" content="Debugging with GDB: Packet Acknowledgment">
  18. <meta name="resource-type" content="document">
  19. <meta name="distribution" content="global">
  20. <meta name="Generator" content="makeinfo">
  21. <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  22. <link href="index.html#Top" rel="start" title="Top">
  23. <link href="Concept-Index.html#Concept-Index" rel="index" title="Concept Index">
  24. <link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
  25. <link href="Remote-Protocol.html#Remote-Protocol" rel="up" title="Remote Protocol">
  26. <link href="Examples.html#Examples" rel="next" title="Examples">
  27. <link href="Remote-Non_002dStop.html#Remote-Non_002dStop" rel="previous" title="Remote Non-Stop">
  28. <style type="text/css">
  29. <!--
  30. a.summary-letter {text-decoration: none}
  31. blockquote.smallquotation {font-size: smaller}
  32. div.display {margin-left: 3.2em}
  33. div.example {margin-left: 3.2em}
  34. div.indentedblock {margin-left: 3.2em}
  35. div.lisp {margin-left: 3.2em}
  36. div.smalldisplay {margin-left: 3.2em}
  37. div.smallexample {margin-left: 3.2em}
  38. div.smallindentedblock {margin-left: 3.2em; font-size: smaller}
  39. div.smalllisp {margin-left: 3.2em}
  40. kbd {font-style:oblique}
  41. pre.display {font-family: inherit}
  42. pre.format {font-family: inherit}
  43. pre.menu-comment {font-family: serif}
  44. pre.menu-preformatted {font-family: serif}
  45. pre.smalldisplay {font-family: inherit; font-size: smaller}
  46. pre.smallexample {font-size: smaller}
  47. pre.smallformat {font-family: inherit; font-size: smaller}
  48. pre.smalllisp {font-size: smaller}
  49. span.nocodebreak {white-space:nowrap}
  50. span.nolinebreak {white-space:nowrap}
  51. span.roman {font-family:serif; font-weight:normal}
  52. span.sansserif {font-family:sans-serif; font-weight:normal}
  53. ul.no-bullet {list-style: none}
  54. -->
  55. </style>
  56. </head>
  57. <body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
  58. <a name="Packet-Acknowledgment"></a>
  59. <div class="header">
  60. <p>
  61. Next: <a href="Examples.html#Examples" accesskey="n" rel="next">Examples</a>, Previous: <a href="Remote-Non_002dStop.html#Remote-Non_002dStop" accesskey="p" rel="previous">Remote Non-Stop</a>, Up: <a href="Remote-Protocol.html#Remote-Protocol" accesskey="u" rel="up">Remote Protocol</a> &nbsp; [<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>
  62. </div>
  63. <hr>
  64. <a name="Packet-Acknowledgment-1"></a>
  65. <h3 class="section">E.11 Packet Acknowledgment</h3>
  66. <a name="index-acknowledgment_002c-for-GDB-remote"></a>
  67. <a name="index-packet-acknowledgment_002c-for-GDB-remote"></a>
  68. <p>By default, when either the host or the target machine receives a packet,
  69. the first response expected is an acknowledgment: either &lsquo;<samp>+</samp>&rsquo; (to indicate
  70. the package was received correctly) or &lsquo;<samp>-</samp>&rsquo; (to request retransmission).
  71. This mechanism allows the <small>GDB</small> remote protocol to operate over
  72. unreliable transport mechanisms, such as a serial line.
  73. </p>
  74. <p>In cases where the transport mechanism is itself reliable (such as a pipe or
  75. TCP connection), the &lsquo;<samp>+</samp>&rsquo;/&lsquo;<samp>-</samp>&rsquo; acknowledgments are redundant.
  76. It may be desirable to disable them in that case to reduce communication
  77. overhead, or for other reasons. This can be accomplished by means of the
  78. &lsquo;<samp>QStartNoAckMode</samp>&rsquo; packet; see <a href="General-Query-Packets.html#QStartNoAckMode">QStartNoAckMode</a>.
  79. </p>
  80. <p>When in no-acknowledgment mode, neither the stub nor <small>GDB</small> shall send or
  81. expect &lsquo;<samp>+</samp>&rsquo;/&lsquo;<samp>-</samp>&rsquo; protocol acknowledgments. The packet
  82. and response format still includes the normal checksum, as described in
  83. <a href="Overview.html#Overview">Overview</a>, but the checksum may be ignored by the receiver.
  84. </p>
  85. <p>If the stub supports &lsquo;<samp>QStartNoAckMode</samp>&rsquo; and prefers to operate in
  86. no-acknowledgment mode, it should report that to <small>GDB</small>
  87. by including &lsquo;<samp>QStartNoAckMode+</samp>&rsquo; in its response to &lsquo;<samp>qSupported</samp>&rsquo;;
  88. see <a href="General-Query-Packets.html#qSupported">qSupported</a>.
  89. If <small>GDB</small> also supports &lsquo;<samp>QStartNoAckMode</samp>&rsquo; and it has not been
  90. disabled via the <code>set remote noack-packet off</code> command
  91. (see <a href="Remote-Configuration.html#Remote-Configuration">Remote Configuration</a>),
  92. <small>GDB</small> may then send a &lsquo;<samp>QStartNoAckMode</samp>&rsquo; packet to the stub.
  93. Only then may the stub actually turn off packet acknowledgments.
  94. <small>GDB</small> sends a final &lsquo;<samp>+</samp>&rsquo; acknowledgment of the stub&rsquo;s &lsquo;<samp>OK</samp>&rsquo;
  95. response, which can be safely ignored by the stub.
  96. </p>
  97. <p>Note that <code>set remote noack-packet</code> command only affects negotiation
  98. between <small>GDB</small> and the stub when subsequent connections are made;
  99. it does not affect the protocol acknowledgment state for any current
  100. connection.
  101. Since &lsquo;<samp>+</samp>&rsquo;/&lsquo;<samp>-</samp>&rsquo; acknowledgments are enabled by default when a
  102. new connection is established,
  103. there is also no protocol request to re-enable the acknowledgments
  104. for the current connection, once disabled.
  105. </p>
  106. <hr>
  107. <div class="header">
  108. <p>
  109. Next: <a href="Examples.html#Examples" accesskey="n" rel="next">Examples</a>, Previous: <a href="Remote-Non_002dStop.html#Remote-Non_002dStop" accesskey="p" rel="previous">Remote Non-Stop</a>, Up: <a href="Remote-Protocol.html#Remote-Protocol" accesskey="u" rel="up">Remote Protocol</a> &nbsp; [<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>
  110. </div>
  111. </body>
  112. </html>