diff options
author | alk3pInjection <webmaster@raspii.tech> | 2024-02-04 16:16:35 +0800 |
---|---|---|
committer | alk3pInjection <webmaster@raspii.tech> | 2024-02-04 16:16:35 +0800 |
commit | abdaadbcae30fe0c9a66c7516798279fdfd97750 (patch) | |
tree | 00a54a6e25601e43876d03c1a4a12a749d4a914c /share/doc/gdb/Interrupts.html |
https://developer.arm.com/downloads/-/arm-gnu-toolchain-downloads
Change-Id: I7303388733328cd98ab9aa3c30236db67f2e9e9c
Diffstat (limited to 'share/doc/gdb/Interrupts.html')
-rw-r--r-- | share/doc/gdb/Interrupts.html | 127 |
1 files changed, 127 insertions, 0 deletions
diff --git a/share/doc/gdb/Interrupts.html b/share/doc/gdb/Interrupts.html new file mode 100644 index 0000000..7a0e420 --- /dev/null +++ b/share/doc/gdb/Interrupts.html @@ -0,0 +1,127 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<html> +<!-- Copyright (C) 1988-2023 Free Software Foundation, Inc. + +Permission is granted to copy, distribute and/or modify this document +under the terms of the GNU Free Documentation License, Version 1.3 or +any later version published by the Free Software Foundation; with the +Invariant Sections being "Free Software" and "Free Software Needs +Free Documentation", with the Front-Cover Texts being "A GNU Manual," +and with the Back-Cover Texts as in (a) below. + +(a) The FSF's Back-Cover Text is: "You are free to copy and modify +this GNU Manual. Buying copies from GNU Press supports the FSF in +developing GNU and promoting software freedom." --> +<!-- Created by GNU Texinfo 5.1, http://www.gnu.org/software/texinfo/ --> +<head> +<title>Debugging with GDB: Interrupts</title> + +<meta name="description" content="Debugging with GDB: Interrupts"> +<meta name="keywords" content="Debugging with GDB: Interrupts"> +<meta name="resource-type" content="document"> +<meta name="distribution" content="global"> +<meta name="Generator" content="makeinfo"> +<meta http-equiv="Content-Type" content="text/html; charset=utf-8"> +<link href="index.html#Top" rel="start" title="Top"> +<link href="Concept-Index.html#Concept-Index" rel="index" title="Concept Index"> +<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents"> +<link href="Remote-Protocol.html#Remote-Protocol" rel="up" title="Remote Protocol"> +<link href="Notification-Packets.html#Notification-Packets" rel="next" title="Notification Packets"> +<link href="Host-I_002fO-Packets.html#Host-I_002fO-Packets" rel="previous" title="Host I/O Packets"> +<style type="text/css"> +<!-- +a.summary-letter {text-decoration: none} +blockquote.smallquotation {font-size: smaller} +div.display {margin-left: 3.2em} +div.example {margin-left: 3.2em} +div.indentedblock {margin-left: 3.2em} +div.lisp {margin-left: 3.2em} +div.smalldisplay {margin-left: 3.2em} +div.smallexample {margin-left: 3.2em} +div.smallindentedblock {margin-left: 3.2em; font-size: smaller} +div.smalllisp {margin-left: 3.2em} +kbd {font-style:oblique} +pre.display {font-family: inherit} +pre.format {font-family: inherit} +pre.menu-comment {font-family: serif} +pre.menu-preformatted {font-family: serif} +pre.smalldisplay {font-family: inherit; font-size: smaller} +pre.smallexample {font-size: smaller} +pre.smallformat {font-family: inherit; font-size: smaller} +pre.smalllisp {font-size: smaller} +span.nocodebreak {white-space:nowrap} +span.nolinebreak {white-space:nowrap} +span.roman {font-family:serif; font-weight:normal} +span.sansserif {font-family:sans-serif; font-weight:normal} +ul.no-bullet {list-style: none} +--> +</style> + + +</head> + +<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000"> +<a name="Interrupts"></a> +<div class="header"> +<p> +Next: <a href="Notification-Packets.html#Notification-Packets" accesskey="n" rel="next">Notification Packets</a>, Previous: <a href="Host-I_002fO-Packets.html#Host-I_002fO-Packets" accesskey="p" rel="previous">Host I/O Packets</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> +</div> +<hr> +<a name="Interrupts-1"></a> +<h3 class="section">E.8 Interrupts</h3> +<a name="index-interrupts-_0028remote-protocol_0029"></a> +<a name="interrupting-remote-targets"></a> +<p>In all-stop mode, when a program on the remote target is running, +<small>GDB</small> may attempt to interrupt it by sending a ‘<samp>Ctrl-C</samp>’, +<code>BREAK</code> or a <code>BREAK</code> followed by <code>g</code>, control of which +is specified via <small>GDB</small>’s ‘<samp>interrupt-sequence</samp>’. +</p> +<p>The precise meaning of <code>BREAK</code> is defined by the transport +mechanism and may, in fact, be undefined. <small>GDB</small> does not +currently define a <code>BREAK</code> mechanism for any of the network +interfaces except for TCP, in which case <small>GDB</small> sends the +<code>telnet</code> BREAK sequence. +</p> +<p>‘<samp>Ctrl-C</samp>’, on the other hand, is defined and implemented for all +transport mechanisms. It is represented by sending the single byte +<code>0x03</code> without any of the usual packet overhead described in +the Overview section (see <a href="Overview.html#Overview">Overview</a>). When a <code>0x03</code> byte is +transmitted as part of a packet, it is considered to be packet data +and does <em>not</em> represent an interrupt. E.g., an ‘<samp>X</samp>’ packet +(see <a href="Packets.html#X-packet">X packet</a>), used for binary downloads, may include an unescaped +<code>0x03</code> as part of its packet. +</p> +<p><code>BREAK</code> followed by <code>g</code> is also known as Magic SysRq g. +When Linux kernel receives this sequence from serial port, +it stops execution and connects to gdb. +</p> +<p>In non-stop mode, because packet resumptions are asynchronous +(see <a href="Packets.html#vCont-packet">vCont packet</a>), <small>GDB</small> is always free to send a remote +command to the remote stub, even when the target is running. For that +reason, <small>GDB</small> instead sends a regular packet (see <a href="Packets.html#vCtrlC-packet">vCtrlC packet</a>) with the usual packet framing instead of the single byte +<code>0x03</code>. +</p> +<p>Stubs are not required to recognize these interrupt mechanisms and the +precise meaning associated with receipt of the interrupt is +implementation defined. If the target supports debugging of multiple +threads and/or processes, it should attempt to interrupt all +currently-executing threads and processes. +If the stub is successful at interrupting the +running program, it should send one of the stop +reply packets (see <a href="Stop-Reply-Packets.html#Stop-Reply-Packets">Stop Reply Packets</a>) to <small>GDB</small> as a result +of successfully stopping the program in all-stop mode, and a stop reply +for each stopped thread in non-stop mode. +Interrupts received while the +program is stopped are queued and the program will be interrupted when +it is resumed next time. +</p> +<hr> +<div class="header"> +<p> +Next: <a href="Notification-Packets.html#Notification-Packets" accesskey="n" rel="next">Notification Packets</a>, Previous: <a href="Host-I_002fO-Packets.html#Host-I_002fO-Packets" accesskey="p" rel="previous">Host I/O Packets</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> +</div> + + + +</body> +</html> |