|
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225 |
- <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
- <html>
- <!-- Copyright (C) 1988-2020 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 6.5, http://www.gnu.org/software/texinfo/ -->
- <head>
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
- <title>Output (Debugging with GDB)</title>
-
- <meta name="description" content="Output (Debugging with GDB)">
- <meta name="keywords" content="Output (Debugging with GDB)">
- <meta name="resource-type" content="document">
- <meta name="distribution" content="global">
- <meta name="Generator" content="makeinfo">
- <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="Sequences.html#Sequences" rel="up" title="Sequences">
- <link href="Auto_002dloading-sequences.html#Auto_002dloading-sequences" rel="next" title="Auto-loading sequences">
- <link href="Command-Files.html#Command-Files" rel="prev" title="Command Files">
- <style type="text/css">
- <!--
- a.summary-letter {text-decoration: none}
- blockquote.indentedblock {margin-right: 0em}
- blockquote.smallindentedblock {margin-right: 0em; font-size: smaller}
- blockquote.smallquotation {font-size: smaller}
- div.display {margin-left: 3.2em}
- div.example {margin-left: 3.2em}
- div.lisp {margin-left: 3.2em}
- div.smalldisplay {margin-left: 3.2em}
- div.smallexample {margin-left: 3.2em}
- 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.nolinebreak {white-space: nowrap}
- span.roman {font-family: initial; font-weight: normal}
- span.sansserif {font-family: sans-serif; font-weight: normal}
- ul.no-bullet {list-style: none}
- -->
- </style>
-
-
- </head>
-
- <body lang="en">
- <a name="Output"></a>
- <div class="header">
- <p>
- Next: <a href="Auto_002dloading-sequences.html#Auto_002dloading-sequences" accesskey="n" rel="next">Auto-loading sequences</a>, Previous: <a href="Command-Files.html#Command-Files" accesskey="p" rel="prev">Command Files</a>, Up: <a href="Sequences.html#Sequences" accesskey="u" rel="up">Sequences</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="Commands-for-Controlled-Output"></a>
- <h4 class="subsection">23.1.4 Commands for Controlled Output</h4>
-
- <p>During the execution of a command file or a user-defined command, normal
- <small>GDB</small> output is suppressed; the only output that appears is what is
- explicitly printed by the commands in the definition. This section
- describes three commands useful for generating exactly the output you
- want.
- </p>
- <dl compact="compact">
- <dd><a name="index-echo"></a>
- </dd>
- <dt><code>echo <var>text</var></code></dt>
- <dd><p>Print <var>text</var>. Nonprinting characters can be included in
- <var>text</var> using C escape sequences, such as ‘<samp>\n</samp>’ to print a
- newline. <strong>No newline is printed unless you specify one.</strong>
- In addition to the standard C escape sequences, a backslash followed
- by a space stands for a space. This is useful for displaying a
- string with spaces at the beginning or the end, since leading and
- trailing spaces are otherwise trimmed from all arguments.
- To print ‘<samp> <!-- /@w -->and foo = <!-- /@w --></samp>’, use the command
- ‘<samp>echo \ <!-- /@w -->and foo = \ <!-- /@w --></samp>’.
- </p>
- <p>A backslash at the end of <var>text</var> can be used, as in C, to continue
- the command onto subsequent lines. For example,
- </p>
- <div class="smallexample">
- <pre class="smallexample">echo This is some text\n\
- which is continued\n\
- onto several lines.\n
- </pre></div>
-
- <p>produces the same output as
- </p>
- <div class="smallexample">
- <pre class="smallexample">echo This is some text\n
- echo which is continued\n
- echo onto several lines.\n
- </pre></div>
-
- <a name="index-output"></a>
- </dd>
- <dt><code>output <var>expression</var></code></dt>
- <dd><p>Print the value of <var>expression</var> and nothing but that value: no
- newlines, no ‘<samp>$<var>nn</var> = </samp>’. The value is not entered in the
- value history either. See <a href="Expressions.html#Expressions">Expressions</a>, for more information
- on expressions.
- </p>
- </dd>
- <dt><code>output/<var>fmt</var> <var>expression</var></code></dt>
- <dd><p>Print the value of <var>expression</var> in format <var>fmt</var>. You can use
- the same formats as for <code>print</code>. See <a href="Output-Formats.html#Output-Formats">Output
- Formats</a>, for more information.
- </p>
- <a name="index-printf"></a>
- </dd>
- <dt><code>printf <var>template</var>, <var>expressions</var>…</code></dt>
- <dd><p>Print the values of one or more <var>expressions</var> under the control of
- the string <var>template</var>. To print several values, make
- <var>expressions</var> be a comma-separated list of individual expressions,
- which may be either numbers or pointers. Their values are printed as
- specified by <var>template</var>, exactly as a C program would do by
- executing the code below:
- </p>
- <div class="smallexample">
- <pre class="smallexample">printf (<var>template</var>, <var>expressions</var>…);
- </pre></div>
-
- <p>As in <code>C</code> <code>printf</code>, ordinary characters in <var>template</var>
- are printed verbatim, while <em>conversion specification</em> introduced
- by the ‘<samp>%</samp>’ character cause subsequent <var>expressions</var> to be
- evaluated, their values converted and formatted according to type and
- style information encoded in the conversion specifications, and then
- printed.
- </p>
- <p>For example, you can print two values in hex like this:
- </p>
- <div class="smallexample">
- <pre class="smallexample">printf "foo, bar-foo = 0x%x, 0x%x\n", foo, bar-foo
- </pre></div>
-
- <p><code>printf</code> supports all the standard <code>C</code> conversion
- specifications, including the flags and modifiers between the ‘<samp>%</samp>’
- character and the conversion letter, with the following exceptions:
- </p>
- <ul>
- <li> The argument-ordering modifiers, such as ‘<samp>2$</samp>’, are not supported.
-
- </li><li> The modifier ‘<samp>*</samp>’ is not supported for specifying precision or
- width.
-
- </li><li> The ‘<samp>'</samp>’ flag (for separation of digits into groups according to
- <code>LC_NUMERIC'</code>) is not supported.
-
- </li><li> The type modifiers ‘<samp>hh</samp>’, ‘<samp>j</samp>’, ‘<samp>t</samp>’, and ‘<samp>z</samp>’ are not
- supported.
-
- </li><li> The conversion letter ‘<samp>n</samp>’ (as in ‘<samp>%n</samp>’) is not supported.
-
- </li><li> The conversion letters ‘<samp>a</samp>’ and ‘<samp>A</samp>’ are not supported.
- </li></ul>
-
- <p>Note that the ‘<samp>ll</samp>’ type modifier is supported only if the
- underlying <code>C</code> implementation used to build <small>GDB</small> supports
- the <code>long long int</code> type, and the ‘<samp>L</samp>’ type modifier is
- supported only if <code>long double</code> type is available.
- </p>
- <p>As in <code>C</code>, <code>printf</code> supports simple backslash-escape
- sequences, such as <code>\n</code>, ‘<samp>\t</samp>’, ‘<samp>\\</samp>’, ‘<samp>\"</samp>’,
- ‘<samp>\a</samp>’, and ‘<samp>\f</samp>’, that consist of backslash followed by a
- single character. Octal and hexadecimal escape sequences are not
- supported.
- </p>
- <p>Additionally, <code>printf</code> supports conversion specifications for DFP
- (<em>Decimal Floating Point</em>) types using the following length modifiers
- together with a floating point specifier.
- letters:
- </p>
- <ul>
- <li> ‘<samp>H</samp>’ for printing <code>Decimal32</code> types.
-
- </li><li> ‘<samp>D</samp>’ for printing <code>Decimal64</code> types.
-
- </li><li> ‘<samp>DD</samp>’ for printing <code>Decimal128</code> types.
- </li></ul>
-
- <p>If the underlying <code>C</code> implementation used to build <small>GDB</small> has
- support for the three length modifiers for DFP types, other modifiers
- such as width and precision will also be available for <small>GDB</small> to use.
- </p>
- <p>In case there is no such <code>C</code> support, no additional modifiers will be
- available and the value will be printed in the standard way.
- </p>
- <p>Here’s an example of printing DFP types using the above conversion letters:
- </p><div class="smallexample">
- <pre class="smallexample">printf "D32: %Hf - D64: %Df - D128: %DDf\n",1.2345df,1.2E10dd,1.2E1dl
- </pre></div>
-
- <a name="eval"></a><a name="index-eval"></a>
- </dd>
- <dt><code>eval <var>template</var>, <var>expressions</var>…</code></dt>
- <dd><p>Convert the values of one or more <var>expressions</var> under the control of
- the string <var>template</var> to a command line, and call it.
- </p>
- </dd>
- </dl>
-
- <hr>
- <div class="header">
- <p>
- Next: <a href="Auto_002dloading-sequences.html#Auto_002dloading-sequences" accesskey="n" rel="next">Auto-loading sequences</a>, Previous: <a href="Command-Files.html#Command-Files" accesskey="p" rel="prev">Command Files</a>, Up: <a href="Sequences.html#Sequences" accesskey="u" rel="up">Sequences</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>
|