<html lang="en">
<head>
<title>Signaling - 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="Altering.html#Altering" title="Altering">
<link rel="prev" href="Jumping.html#Jumping" title="Jumping">
<link rel="next" href="Returning.html#Returning" title="Returning">
<link href="http://www.gnu.org/software/texinfo/" rel="generator-home" title="Texinfo Homepage">
<!--
Copyright (C) 1988-2019 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>
</head>
<body>
<div class="node">
<a name="Signaling"></a>
<p>
Next:&nbsp;<a rel="next" accesskey="n" href="Returning.html#Returning">Returning</a>,
Previous:&nbsp;<a rel="previous" accesskey="p" href="Jumping.html#Jumping">Jumping</a>,
Up:&nbsp;<a rel="up" accesskey="u" href="Altering.html#Altering">Altering</a>
<hr>
</div>

<h3 class="section">17.3 Giving your Program a Signal</h3>

<p><a name="index-deliver-a-signal-to-a-program-1170"></a>
     
<a name="index-signal-1171"></a>
<dl><dt><code>signal </code><var>signal</var><dd>Resume execution where your program is stopped, but immediately give it the
signal <var>signal</var>.  The <var>signal</var> can be the name or the number of a
signal.  For example, on many systems <code>signal 2</code> and <code>signal
SIGINT</code> are both ways of sending an interrupt signal.

     <p>Alternatively, if <var>signal</var> is zero, continue execution without
giving a signal.  This is useful when your program stopped on account of
a signal and would ordinarily see the signal when resumed with the
<code>continue</code> command; &lsquo;<samp><span class="samp">signal 0</span></samp>&rsquo; causes it to resume without a
signal.

     <p><em>Note:</em> When resuming a multi-threaded program, <var>signal</var> is
delivered to the currently selected thread, not the thread that last
reported a stop.  This includes the situation where a thread was
stopped due to a signal.  So if you want to continue execution
suppressing the signal that stopped a thread, you should select that
same thread before issuing the &lsquo;<samp><span class="samp">signal 0</span></samp>&rsquo; command.  If you issue
the &lsquo;<samp><span class="samp">signal 0</span></samp>&rsquo; command with another thread as the selected one,
<span class="sc">gdb</span> detects that and asks for confirmation.

     <p>Invoking the <code>signal</code> command is not the same as invoking the
<code>kill</code> utility from the shell.  Sending a signal with <code>kill</code>
causes <span class="sc">gdb</span> to decide what to do with the signal depending on
the signal handling tables (see <a href="Signals.html#Signals">Signals</a>).  The <code>signal</code> command
passes the signal directly to your program.

     <p><code>signal</code> does not repeat when you press &lt;RET&gt; a second time
after executing the command.

     <p><a name="index-queue_002dsignal-1172"></a><br><dt><code>queue-signal </code><var>signal</var><dd>Queue <var>signal</var> to be delivered immediately to the current thread
when execution of the thread resumes.  The <var>signal</var> can be the name or
the number of a signal.  For example, on many systems <code>signal 2</code> and
<code>signal SIGINT</code> are both ways of sending an interrupt signal. 
The handling of the signal must be set to pass the signal to the program,
otherwise <span class="sc">gdb</span> will report an error. 
You can control the handling of signals from <span class="sc">gdb</span> with the
<code>handle</code> command (see <a href="Signals.html#Signals">Signals</a>).

     <p>Alternatively, if <var>signal</var> is zero, any currently queued signal
for the current thread is discarded and when execution resumes no signal
will be delivered.  This is useful when your program stopped on account
of a signal and would ordinarily see the signal when resumed with the
<code>continue</code> command.

     <p>This command differs from the <code>signal</code> command in that the signal
is just queued, execution is not resumed.  And <code>queue-signal</code> cannot
be used to pass a signal whose handling state has been set to <code>nopass</code>
(see <a href="Signals.html#Signals">Signals</a>). 
</dl>
   <!-- @end group -->

   <p>See <a href="stepping-into-signal-handlers.html#stepping-into-signal-handlers">stepping into signal handlers</a>, for information on how stepping
commands behave when the thread has a signal queued.

   </body></html>

