<html lang="en">
<head>
<title>Server Prefix - 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="Annotations.html#Annotations" title="Annotations">
<link rel="prev" href="Annotations-Overview.html#Annotations-Overview" title="Annotations Overview">
<link rel="next" href="Prompting.html#Prompting" title="Prompting">
<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="Server-Prefix"></a>
<p>
Next:&nbsp;<a rel="next" accesskey="n" href="Prompting.html#Prompting">Prompting</a>,
Previous:&nbsp;<a rel="previous" accesskey="p" href="Annotations-Overview.html#Annotations-Overview">Annotations Overview</a>,
Up:&nbsp;<a rel="up" accesskey="u" href="Annotations.html#Annotations">Annotations</a>
<hr>
</div>

<h3 class="section">28.2 The Server Prefix</h3>

<p><a name="index-server-prefix-2134"></a>
If you prefix a command with &lsquo;<samp><span class="samp">server </span></samp>&rsquo; then it will not affect
the command history, nor will it affect <span class="sc">gdb</span>'s notion of which
command to repeat if &lt;RET&gt; is pressed on a line by itself.  This
means that commands can be run behind a user's back by a front-end in
a transparent manner.

   <p>The <code>server </code> prefix does not affect the recording of values into
the value history; to print a value without recording it into the
value history, use the <code>output</code> command instead of the
<code>print</code> command.

   <p>Using this prefix also disables confirmation requests
(see <a href="confirmation-requests.html#confirmation-requests">confirmation requests</a>).

   </body></html>

