<html lang="en">
<head>
<title>The Ctrl-C Message - Debugging with GDB</title>
<meta http-equiv="Content-Type" content="text/html">
<meta name="description" content="Debugging with GDB">
<meta name="generator" content="makeinfo 4.13">
<link title="Top" rel="start" href="index.html#Top">
<link rel="up" href="File_002dI_002fO-Remote-Protocol-Extension.html#File_002dI_002fO-Remote-Protocol-Extension" title="File-I/O Remote Protocol Extension">
<link rel="prev" href="The-F-Reply-Packet.html#The-F-Reply-Packet" title="The F Reply Packet">
<link rel="next" href="Console-I_002fO.html#Console-I_002fO" title="Console I/O">
<link href="http://www.gnu.org/software/texinfo/" rel="generator-home" title="Texinfo Homepage">
<!--
Copyright (C) 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996,
1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
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.''-->
<meta http-equiv="Content-Style-Type" content="text/css">
<style type="text/css"><!--
  pre.display { font-family:inherit }
  pre.format  { font-family:inherit }
  pre.smalldisplay { font-family:inherit; font-size:smaller }
  pre.smallformat  { font-family:inherit; font-size:smaller }
  pre.smallexample { font-size:smaller }
  pre.smalllisp    { font-size:smaller }
  span.sc    { font-variant:small-caps }
  span.roman { font-family:serif; font-weight:normal; } 
  span.sansserif { font-family:sans-serif; font-weight:normal; } 
--></style>
<link rel="stylesheet" type="text/css" href="../cs.css">
</head>
<body>
<div class="node">
<a name="The-Ctrl-C-Message"></a>
<a name="The-Ctrl_002dC-Message"></a>
<p>
Next:&nbsp;<a rel="next" accesskey="n" href="Console-I_002fO.html#Console-I_002fO">Console I/O</a>,
Previous:&nbsp;<a rel="previous" accesskey="p" href="The-F-Reply-Packet.html#The-F-Reply-Packet">The F Reply Packet</a>,
Up:&nbsp;<a rel="up" accesskey="u" href="File_002dI_002fO-Remote-Protocol-Extension.html#File_002dI_002fO-Remote-Protocol-Extension">File-I/O Remote Protocol Extension</a>
<hr>
</div>

<h4 class="subsection">D.14.5 The &lsquo;<samp><span class="samp">Ctrl-C</span></samp>&rsquo; Message</h4>

<p><a name="index-ctrl_002dc-message_002c-in-file_002di_002fo-protocol-2501"></a>
If the &lsquo;<samp><span class="samp">Ctrl-C</span></samp>&rsquo; flag is set in the <span class="sc">gdb</span>
reply packet (see <a href="The-F-Reply-Packet.html#The-F-Reply-Packet">The F Reply Packet</a>),
the target should behave as if it had
gotten a break message.  The meaning for the target is &ldquo;system call
interrupted by <code>SIGINT</code>&rdquo;.  Consequentially, the target should actually stop
(as with a break message) and return to <span class="sc">gdb</span> with a <code>T02</code>
packet.

   <p>It's important for the target to know in which
state the system call was interrupted.  There are two possible cases:

     <ul>
<li>The system call hasn't been performed on the host yet.

     <li>The system call on the host has been finished.

   </ul>

   <p>These two states can be distinguished by the target by the value of the
returned <code>errno</code>.  If it's the protocol representation of <code>EINTR</code>, the system
call hasn't been performed.  This is equivalent to the <code>EINTR</code> handling
on POSIX systems.  In any other case, the target may presume that the
system call has been finished &mdash; successfully or not &mdash; and should behave
as if the break message arrived right after the system call.

   <p><span class="sc">gdb</span> must behave reliably.  If the system call has not been called
yet, <span class="sc">gdb</span> may send the <code>F</code> reply immediately, setting <code>EINTR</code> as
<code>errno</code> in the packet.  If the system call on the host has been finished
before the user requests a break, the full action must be finished by
<span class="sc">gdb</span>.  This requires sending <code>M</code> or <code>X</code> packets as necessary. 
The <code>F</code> packet may only be sent when either nothing has happened
or the full action has been completed.

   </body></html>

