You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

126 lines
6.4KB

  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 6.5, http://www.gnu.org/software/texinfo/ -->
  14. <head>
  15. <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  16. <title>File-I/O Overview (Debugging with GDB)</title>
  17. <meta name="description" content="File-I/O Overview (Debugging with GDB)">
  18. <meta name="keywords" content="File-I/O Overview (Debugging with GDB)">
  19. <meta name="resource-type" content="document">
  20. <meta name="distribution" content="global">
  21. <meta name="Generator" content="makeinfo">
  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="File_002dI_002fO-Remote-Protocol-Extension.html#File_002dI_002fO-Remote-Protocol-Extension" rel="up" title="File-I/O Remote Protocol Extension">
  26. <link href="Protocol-Basics.html#Protocol-Basics" rel="next" title="Protocol Basics">
  27. <link href="File_002dI_002fO-Remote-Protocol-Extension.html#File_002dI_002fO-Remote-Protocol-Extension" rel="prev" title="File-I/O Remote Protocol Extension">
  28. <style type="text/css">
  29. <!--
  30. a.summary-letter {text-decoration: none}
  31. blockquote.indentedblock {margin-right: 0em}
  32. blockquote.smallindentedblock {margin-right: 0em; font-size: smaller}
  33. blockquote.smallquotation {font-size: smaller}
  34. div.display {margin-left: 3.2em}
  35. div.example {margin-left: 3.2em}
  36. div.lisp {margin-left: 3.2em}
  37. div.smalldisplay {margin-left: 3.2em}
  38. div.smallexample {margin-left: 3.2em}
  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.nolinebreak {white-space: nowrap}
  50. span.roman {font-family: initial; font-weight: normal}
  51. span.sansserif {font-family: sans-serif; font-weight: normal}
  52. ul.no-bullet {list-style: none}
  53. -->
  54. </style>
  55. </head>
  56. <body lang="en">
  57. <a name="File_002dI_002fO-Overview"></a>
  58. <div class="header">
  59. <p>
  60. Next: <a href="Protocol-Basics.html#Protocol-Basics" accesskey="n" rel="next">Protocol Basics</a>, Up: <a href="File_002dI_002fO-Remote-Protocol-Extension.html#File_002dI_002fO-Remote-Protocol-Extension" accesskey="u" rel="up">File-I/O Remote Protocol Extension</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>
  61. </div>
  62. <hr>
  63. <a name="File_002dI_002fO-Overview-1"></a>
  64. <h4 class="subsection">E.13.1 File-I/O Overview</h4>
  65. <a name="index-file_002di_002fo-overview"></a>
  66. <p>The <em>File I/O remote protocol extension</em> (short: File-I/O) allows the
  67. target to use the host&rsquo;s file system and console I/O to perform various
  68. system calls. System calls on the target system are translated into a
  69. remote protocol packet to the host system, which then performs the needed
  70. actions and returns a response packet to the target system.
  71. This simulates file system operations even on targets that lack file systems.
  72. </p>
  73. <p>The protocol is defined to be independent of both the host and target systems.
  74. It uses its own internal representation of datatypes and values. Both
  75. <small>GDB</small> and the target&rsquo;s <small>GDB</small> stub are responsible for
  76. translating the system-dependent value representations into the internal
  77. protocol representations when data is transmitted.
  78. </p>
  79. <p>The communication is synchronous. A system call is possible only when
  80. <small>GDB</small> is waiting for a response from the &lsquo;<samp>C</samp>&rsquo;, &lsquo;<samp>c</samp>&rsquo;, &lsquo;<samp>S</samp>&rsquo;
  81. or &lsquo;<samp>s</samp>&rsquo; packets. While <small>GDB</small> handles the request for a system call,
  82. the target is stopped to allow deterministic access to the target&rsquo;s
  83. memory. Therefore File-I/O is not interruptible by target signals. On
  84. the other hand, it is possible to interrupt File-I/O by a user interrupt
  85. (&lsquo;<samp>Ctrl-C</samp>&rsquo;) within <small>GDB</small>.
  86. </p>
  87. <p>The target&rsquo;s request to perform a host system call does not finish
  88. the latest &lsquo;<samp>C</samp>&rsquo;, &lsquo;<samp>c</samp>&rsquo;, &lsquo;<samp>S</samp>&rsquo; or &lsquo;<samp>s</samp>&rsquo; action. That means,
  89. after finishing the system call, the target returns to continuing the
  90. previous activity (continue, step). No additional continue or step
  91. request from <small>GDB</small> is required.
  92. </p>
  93. <div class="smallexample">
  94. <pre class="smallexample">(gdb) continue
  95. &lt;- target requests 'system call X'
  96. target is stopped, GDB executes system call
  97. -&gt; GDB returns result
  98. ... target continues, GDB returns to wait for the target
  99. &lt;- target hits breakpoint and sends a Txx packet
  100. </pre></div>
  101. <p>The protocol only supports I/O on the console and to regular files on
  102. the host file system. Character or block special devices, pipes,
  103. named pipes, sockets or any other communication method on the host
  104. system are not supported by this protocol.
  105. </p>
  106. <p>File I/O is not supported in non-stop mode.
  107. </p>
  108. <hr>
  109. <div class="header">
  110. <p>
  111. Next: <a href="Protocol-Basics.html#Protocol-Basics" accesskey="n" rel="next">Protocol Basics</a>, Up: <a href="File_002dI_002fO-Remote-Protocol-Extension.html#File_002dI_002fO-Remote-Protocol-Extension" accesskey="u" rel="up">File-I/O Remote Protocol Extension</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>
  112. </div>
  113. </body>
  114. </html>