1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
|
<!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: Output Styling</title>
<meta name="description" content="Debugging with GDB: Output Styling">
<meta name="keywords" content="Debugging with GDB: Output Styling">
<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="Controlling-GDB.html#Controlling-GDB" rel="up" title="Controlling GDB">
<link href="Numbers.html#Numbers" rel="next" title="Numbers">
<link href="Screen-Size.html#Screen-Size" rel="previous" title="Screen Size">
<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="Output-Styling"></a>
<div class="header">
<p>
Next: <a href="Numbers.html#Numbers" accesskey="n" rel="next">Numbers</a>, Previous: <a href="Screen-Size.html#Screen-Size" accesskey="p" rel="previous">Screen Size</a>, Up: <a href="Controlling-GDB.html#Controlling-GDB" accesskey="u" rel="up">Controlling GDB</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="Output-Styling-1"></a>
<h3 class="section">22.5 Output Styling</h3>
<a name="index-styling"></a>
<a name="index-colors"></a>
<a name="index-set-style"></a>
<a name="index-show-style"></a>
<p><small>GDB</small> can style its output on a capable terminal. This is
enabled by default on most systems, but disabled by default when in
batch mode (see <a href="Mode-Options.html#Mode-Options">Mode Options</a>). Various style settings are available;
and styles can also be disabled entirely.
</p>
<dl compact="compact">
<dt><code>set style enabled ‘<samp>on|off</samp>’</code></dt>
<dd><p>Enable or disable all styling. The default is host-dependent, with
most hosts defaulting to ‘<samp>on</samp>’.
</p>
</dd>
<dt><code>show style enabled</code></dt>
<dd><p>Show the current state of styling.
</p>
</dd>
<dt><code>set style sources ‘<samp>on|off</samp>’</code></dt>
<dd><p>Enable or disable source code styling. This affects whether source
code, such as the output of the <code>list</code> command, is styled. The
default is ‘<samp>on</samp>’. Note that source styling only works if styling
in general is enabled, and if a source highlighting library is
available to <small>GDB</small>.
</p>
<p>There are two ways that highlighting can be done. First, if
<small>GDB</small> was linked with the GNU Source Highlight library, then it
is used. Otherwise, if <small>GDB</small> was configured with Python
scripting support, and if the Python Pygments package is available,
then it will be used.
</p>
</dd>
<dt><code>show style sources</code></dt>
<dd><p>Show the current state of source code styling.
</p>
</dd>
<dt><code>set style tui-current-position ‘<samp>on|off</samp>’</code></dt>
<dd><p>Enable or disable styling of the source and assembly code highlighted
by the TUI’s current position indicator. The default is ‘<samp>off</samp>’.
See <a href="TUI.html#TUI"><small>GDB</small> Text User Interface</a>.
</p>
</dd>
<dt><code>show style tui-current-position</code></dt>
<dd><p>Show whether the source and assembly code highlighted by the TUI’s
current position indicator is styled.
</p>
<a name="style_005fdisassembler_005fenabled"></a></dd>
<dt><code>set style disassembler enabled ‘<samp>on|off</samp>’</code></dt>
<dd><p>Enable or disable disassembler styling. This affects whether
disassembler output, such as the output of the <code>disassemble</code>
command, is styled. Disassembler styling only works if styling in
general is enabled (with <code>set style enabled on</code>), and if a source
highlighting library is available to <small>GDB</small>.
</p>
<p>The two source highlighting libraries that <small>GDB</small> could use to
style disassembler output are; <small>GDB</small>’s builtin disassembler, or
the Python Pygments package.
</p>
<p><small>GDB</small>’s first choice will be to use the builtin disassembler
for styling, this usually provides better results, being able to style
different types of instruction operands differently. However, the
builtin disassembler is not able to style all architectures.
</p>
<p>For architectures that the builtin disassembler is unable to style,
<small>GDB</small> will fall back to use the Python Pygments package where
possible. In order to use the Python Pygments package, <small>GDB</small>
must be built with Python support, and the Pygments package must be
installed.
</p>
<p>If neither of these options are available then <small>GDB</small> will
produce unstyled disassembler output, even when this setting is
‘<samp>on</samp>’.
</p>
<p>To discover if the current architecture supports styling using the
builtin disassembler library see <a href="Maintenance-Commands.html#maint_005flibopcodes_005fstyling"><kbd>maint
show libopcodes-styling enabled</kbd></a>.
</p>
</dd>
<dt><code>show style disassembler enabled</code></dt>
<dd><p>Show the current state of disassembler styling.
</p>
</dd>
</dl>
<p>Subcommands of <code>set style</code> control specific forms of styling.
These subcommands all follow the same pattern: each style-able object
can be styled with a foreground color, a background color, and an
intensity.
</p>
<p>For example, the style of file names can be controlled using the
<code>set style filename</code> group of commands:
</p>
<dl compact="compact">
<dt><code>set style filename background <var>color</var></code></dt>
<dd><p>Set the background to <var>color</var>. Valid colors are ‘<samp>none</samp>’
(meaning the terminal’s default color), ‘<samp>black</samp>’, ‘<samp>red</samp>’,
‘<samp>green</samp>’, ‘<samp>yellow</samp>’, ‘<samp>blue</samp>’, ‘<samp>magenta</samp>’, ‘<samp>cyan</samp>’,
and‘<samp>white</samp>’.
</p>
</dd>
<dt><code>set style filename foreground <var>color</var></code></dt>
<dd><p>Set the foreground to <var>color</var>. Valid colors are ‘<samp>none</samp>’
(meaning the terminal’s default color), ‘<samp>black</samp>’, ‘<samp>red</samp>’,
‘<samp>green</samp>’, ‘<samp>yellow</samp>’, ‘<samp>blue</samp>’, ‘<samp>magenta</samp>’, ‘<samp>cyan</samp>’,
and‘<samp>white</samp>’.
</p>
</dd>
<dt><code>set style filename intensity <var>value</var></code></dt>
<dd><p>Set the intensity to <var>value</var>. Valid intensities are ‘<samp>normal</samp>’
(the default), ‘<samp>bold</samp>’, and ‘<samp>dim</samp>’.
</p></dd>
</dl>
<p>The <code>show style</code> command and its subcommands are styling
a style name in their output using its own style.
So, use <code>show style</code> to see the complete list of styles,
their characteristics and the visual aspect of each style.
</p>
<p>The style-able objects are:
</p><dl compact="compact">
<dt><code>filename</code></dt>
<dd><p>Control the styling of file names and URLs. By default, this style’s
foreground color is green.
</p>
</dd>
<dt><code>function</code></dt>
<dd><p>Control the styling of function names. These are managed with the
<code>set style function</code> family of commands. By default, this
style’s foreground color is yellow.
</p>
<p>This style is also used for symbol names in styled disassembler output
if <small>GDB</small> is using its builtin disassembler library for styling
(see <a href="#style_005fdisassembler_005fenabled"><kbd>set style disassembler
enabled</kbd></a>).
</p>
</dd>
<dt><code>variable</code></dt>
<dd><p>Control the styling of variable names. These are managed with the
<code>set style variable</code> family of commands. By default, this style’s
foreground color is cyan.
</p>
</dd>
<dt><code>address</code></dt>
<dd><p>Control the styling of addresses. These are managed with the
<code>set style address</code> family of commands. By default, this style’s
foreground color is blue.
</p>
<p>This style is also used for addresses in styled disassembler output
if <small>GDB</small> is using its builtin disassembler library for styling
(see <a href="#style_005fdisassembler_005fenabled"><kbd>set style disassembler
enabled</kbd></a>).
</p>
</dd>
<dt><code>version</code></dt>
<dd><p>Control the styling of <small>GDB</small>’s version number text. By
default, this style’s foreground color is magenta and it has bold
intensity. The version number is displayed in two places, the output
of <code>show version</code>, and when <small>GDB</small> starts up.
</p>
<p>In order to control how <small>GDB</small> styles the version number at
startup, add the <code>set style version</code> family of commands to the
early initialization command file (see <a href="Initialization-Files.html#Initialization-Files">Initialization Files</a>).
</p>
</dd>
<dt><code>title</code></dt>
<dd><p>Control the styling of titles. These are managed with the
<code>set style title</code> family of commands. By default, this style’s
intensity is bold. Commands are using the title style to improve
the readability of large output. For example, the commands
<code>apropos</code> and <code>help</code> are using the title style
for the command names.
</p>
</dd>
<dt><code>highlight</code></dt>
<dd><p>Control the styling of highlightings. These are managed with the
<code>set style highlight</code> family of commands. By default, this style’s
foreground color is red. Commands are using the highlight style to draw
the user attention to some specific parts of their output. For example,
the command <code>apropos -v REGEXP</code> uses the highlight style to
mark the documentation parts matching <var>regexp</var>.
</p>
</dd>
<dt><code>metadata</code></dt>
<dd><p>Control the styling of data annotations added by <small>GDB</small> to data
it displays. By default, this style’s intensity is dim. Metadata
annotations include the ‘<samp>repeats <var>n</var> times</samp>’ annotation for
suppressed display of repeated array elements (see <a href="Print-Settings.html#Print-Settings">Print Settings</a>),
‘<samp><unavailable></samp>’ and ‘<samp><error <var>descr</var>></samp>’<!-- /@w --> annotations
for errors and ‘<samp><optimized-out></samp>’ annotations for optimized-out
values in displaying stack frame information in backtraces
(see <a href="Backtrace.html#Backtrace">Backtrace</a>), etc.
</p>
</dd>
<dt><code>tui-border</code></dt>
<dd><p>Control the styling of the TUI border. Note that, unlike other
styling options, only the color of the border can be controlled via
<code>set style</code>. This was done for compatibility reasons, as TUI
controls to set the border’s intensity predated the addition of
general styling to <small>GDB</small>. See <a href="TUI-Configuration.html#TUI-Configuration">TUI Configuration</a>.
</p>
</dd>
<dt><code>tui-active-border</code></dt>
<dd><p>Control the styling of the active TUI border; that is, the TUI window
that has the focus.
</p>
</dd>
<dt><code>disassembler comment</code></dt>
<dd><p>Control the styling of comments in the disassembler output. These are
managed with the <code>set style disassembler comment</code> family of
commands. This style is only used when <small>GDB</small> is styling using
its builtin disassembler library
(see <a href="#style_005fdisassembler_005fenabled"><kbd>set style disassembler
enabled</kbd></a>). By default, this style’s intensity is dim, and its
foreground color is white.
</p>
</dd>
<dt><code>disassembler immediate</code></dt>
<dd><p>Control the styling of numeric operands in the disassembler output.
These are managed with the <code>set style disassembler immediate</code>
family of commands. This style is not used for instruction operands
that represent addresses, in that case the ‘<samp>disassembler address</samp>’
style is used. This style is only used when <small>GDB</small> is styling
using its builtin disassembler library. By default, this style’s
foreground color is blue.
</p>
</dd>
<dt><code>disassembler address</code></dt>
<dd><p>Control the styling of address operands in the disassembler output.
This is an alias for the ‘<samp>address</samp>’ style.
</p>
</dd>
<dt><code>disassembler symbol</code></dt>
<dd><p>Control the styling of symbol names in the disassembler output. This
is an alias for the ‘<samp>function</samp>’ style.
</p>
</dd>
<dt><code>disassembler mnemonic</code></dt>
<dd><p>Control the styling of instruction mnemonics in the disassembler
output. These are managed with the <code>set style disassembler
mnemonic</code> family of commands. This style is also used for assembler
directives, e.g. <code>.byte</code>, <code>.word</code>, etc. This style is
only used when <small>GDB</small> is styling using its builtin disassembler
library. By default, this style’s foreground color is green.
</p>
</dd>
<dt><code>disassembler register</code></dt>
<dd><p>Control the styling of register operands in the disassembler output.
These are managed with the <code>set style disassembler register</code>
family of commands. This style is only used when <small>GDB</small> is
styling using its builtin disassembler library. By default, this style’s
foreground color is red.
</p>
</dd>
</dl>
<hr>
<div class="header">
<p>
Next: <a href="Numbers.html#Numbers" accesskey="n" rel="next">Numbers</a>, Previous: <a href="Screen-Size.html#Screen-Size" accesskey="p" rel="previous">Screen Size</a>, Up: <a href="Controlling-GDB.html#Controlling-GDB" accesskey="u" rel="up">Controlling GDB</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>
|