Du kan inte välja fler än 25 ämnen Ämnen måste starta med en bokstav eller siffra, kan innehålla bindestreck ('-') och vara max 35 tecken långa.

142 lines
7.2KB

  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>Asynchronous and non-stop modes (Debugging with GDB)</title>
  17. <meta name="description" content="Asynchronous and non-stop modes (Debugging with GDB)">
  18. <meta name="keywords" content="Asynchronous and non-stop modes (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="GDB_002fMI-General-Design.html#GDB_002fMI-General-Design" rel="up" title="GDB/MI General Design">
  26. <link href="Thread-groups.html#Thread-groups" rel="next" title="Thread groups">
  27. <link href="Context-management.html#Context-management" rel="prev" title="Context management">
  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="Asynchronous-and-non_002dstop-modes"></a>
  58. <div class="header">
  59. <p>
  60. Next: <a href="Thread-groups.html#Thread-groups" accesskey="n" rel="next">Thread groups</a>, Previous: <a href="Context-management.html#Context-management" accesskey="p" rel="prev">Context management</a>, Up: <a href="GDB_002fMI-General-Design.html#GDB_002fMI-General-Design" accesskey="u" rel="up">GDB/MI General Design</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="Asynchronous-command-execution-and-non_002dstop-mode"></a>
  64. <h4 class="subsection">27.1.2 Asynchronous command execution and non-stop mode</h4>
  65. <p>On some targets, <small>GDB</small> is capable of processing MI commands
  66. even while the target is running. This is called <em>asynchronous
  67. command execution</em> (see <a href="Background-Execution.html#Background-Execution">Background Execution</a>). The frontend may
  68. specify a preference for asynchronous execution using the
  69. <code>-gdb-set mi-async 1</code> command, which should be emitted before
  70. either running the executable or attaching to the target. After the
  71. frontend has started the executable or attached to the target, it can
  72. find if asynchronous execution is enabled using the
  73. <code>-list-target-features</code> command.
  74. </p>
  75. <dl compact="compact">
  76. <dt><code>-gdb-set mi-async on</code></dt>
  77. <dt><code>-gdb-set mi-async off</code></dt>
  78. <dd><p>Set whether MI is in asynchronous mode.
  79. </p>
  80. <p>When <code>off</code>, which is the default, MI execution commands (e.g.,
  81. <code>-exec-continue</code>) are foreground commands, and <small>GDB</small> waits
  82. for the program to stop before processing further commands.
  83. </p>
  84. <p>When <code>on</code>, MI execution commands are background execution
  85. commands (e.g., <code>-exec-continue</code> becomes the equivalent of the
  86. <code>c&amp;</code> CLI command), and so <small>GDB</small> is capable of processing
  87. MI commands even while the target is running.
  88. </p>
  89. </dd>
  90. <dt><code>-gdb-show mi-async</code></dt>
  91. <dd><p>Show whether MI asynchronous mode is enabled.
  92. </p></dd>
  93. </dl>
  94. <p>Note: In <small>GDB</small> version 7.7 and earlier, this option was called
  95. <code>target-async</code> instead of <code>mi-async</code>, and it had the effect
  96. of both putting MI in asynchronous mode and making CLI background
  97. commands possible. CLI background commands are now always possible
  98. &ldquo;out of the box&rdquo; if the target supports them. The old spelling is
  99. kept as a deprecated alias for backwards compatibility.
  100. </p>
  101. <p>Even if <small>GDB</small> can accept a command while target is running,
  102. many commands that access the target do not work when the target is
  103. running. Therefore, asynchronous command execution is most useful
  104. when combined with non-stop mode (see <a href="Non_002dStop-Mode.html#Non_002dStop-Mode">Non-Stop Mode</a>). Then,
  105. it is possible to examine the state of one thread, while other threads
  106. are running.
  107. </p>
  108. <p>When a given thread is running, MI commands that try to access the
  109. target in the context of that thread may not work, or may work only on
  110. some targets. In particular, commands that try to operate on thread&rsquo;s
  111. stack will not work, on any target. Commands that read memory, or
  112. modify breakpoints, may work or not work, depending on the target. Note
  113. that even commands that operate on global state, such as <code>print</code>,
  114. <code>set</code>, and breakpoint commands, still access the target in the
  115. context of a specific thread, so frontend should try to find a
  116. stopped thread and perform the operation on that thread (using the
  117. &lsquo;<samp>--thread</samp>&rsquo; option).
  118. </p>
  119. <p>Which commands will work in the context of a running thread is
  120. highly target dependent. However, the two commands
  121. <code>-exec-interrupt</code>, to stop a thread, and <code>-thread-info</code>,
  122. to find the state of a thread, will always work.
  123. </p>
  124. <hr>
  125. <div class="header">
  126. <p>
  127. Next: <a href="Thread-groups.html#Thread-groups" accesskey="n" rel="next">Thread groups</a>, Previous: <a href="Context-management.html#Context-management" accesskey="p" rel="prev">Context management</a>, Up: <a href="GDB_002fMI-General-Design.html#GDB_002fMI-General-Design" accesskey="u" rel="up">GDB/MI General Design</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>
  128. </div>
  129. </body>
  130. </html>