hc
2023-11-06 15ade055295d13f95d49e3d99b09f3bbfb4a43e7
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
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<!-- Copyright (C) 1988-2021 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: Aliases</title>
 
<meta name="description" content="Debugging with GDB: Aliases">
<meta name="keywords" content="Debugging with GDB: Aliases">
<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="Extending-GDB.html#Extending-GDB" rel="up" title="Extending GDB">
<link href="Interpreters.html#Interpreters" rel="next" title="Interpreters">
<link href="Multiple-Extension-Languages.html#Multiple-Extension-Languages" rel="previous" title="Multiple Extension Languages">
<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="Aliases"></a>
<div class="header">
<p>
Previous: <a href="Multiple-Extension-Languages.html#Multiple-Extension-Languages" accesskey="p" rel="previous">Multiple Extension Languages</a>, Up: <a href="Extending-GDB.html#Extending-GDB" accesskey="u" rel="up">Extending GDB</a> &nbsp; [<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="Creating-New-Spellings-of-Existing-Commands"></a>
<h3 class="section">23.6 Creating New Spellings of Existing Commands</h3>
<a name="index-aliases-for-commands"></a>
 
<p>It is often useful to define alternate spellings of existing commands.
For example, if a new <small>GDB</small> command defined in Python has
a long name to type, it is handy to have an abbreviated version of it
that involves less typing.
</p>
<p><small>GDB</small> itself uses aliases.  For example &lsquo;<samp>s</samp>&rsquo; is an alias
of the &lsquo;<samp>step</samp>&rsquo; command even though it is otherwise an ambiguous
abbreviation of other commands like &lsquo;<samp>set</samp>&rsquo; and &lsquo;<samp>show</samp>&rsquo;.
</p>
<p>Aliases are also used to provide shortened or more common versions
of multi-word commands.  For example, <small>GDB</small> provides the
&lsquo;<samp>tty</samp>&rsquo; alias of the &lsquo;<samp>set inferior-tty</samp>&rsquo; command.
</p>
<p>You can define a new alias with the &lsquo;<samp>alias</samp>&rsquo; command.
</p>
<dl compact="compact">
<dd>
<a name="index-alias"></a>
</dd>
<dt><code>alias [-a] [--] <var>ALIAS</var> = <var>COMMAND</var> [DEFAULT-ARGS...]</code></dt>
</dl>
 
<p><var>ALIAS</var> specifies the name of the new alias.
Each word of <var>ALIAS</var> must consist of letters, numbers, dashes and
underscores.
</p>
<p><var>COMMAND</var> specifies the name of an existing command
that is being aliased.
</p>
<p><var>COMMAND</var> can also be the name of an existing alias.  In this case,
<var>COMMAND</var> cannot be an alias that has default arguments.
</p>
<p>The &lsquo;<samp>-a</samp>&rsquo; option specifies that the new alias is an abbreviation
of the command.  Abbreviations are not used in command completion.
</p>
<p>The &lsquo;<samp>--</samp>&rsquo; option specifies the end of options,
and is useful when <var>ALIAS</var> begins with a dash.
</p>
<p>You can specify <var>default-args</var> for your alias.
These <var>default-args</var> will be automatically added before the alias
arguments typed explicitly on the command line.
</p>
<p>For example, the below defines an alias <code>btfullall</code> that shows all local
variables and all frame arguments:
</p><div class="smallexample">
<pre class="smallexample">(gdb) alias btfullall = backtrace -full -frame-arguments all
</pre></div>
 
<p>For more information about <var>default-args</var>, see <a href="Command-aliases-default-args.html#Command-aliases-default-args">Automatically prepend default arguments to user-defined aliases</a>.
</p>
<p>Here is a simple example showing how to make an abbreviation
of a command so that there is less to type.
Suppose you were tired of typing &lsquo;<samp>disas</samp>&rsquo;, the current
shortest unambiguous abbreviation of the &lsquo;<samp>disassemble</samp>&rsquo; command
and you wanted an even shorter version named &lsquo;<samp>di</samp>&rsquo;.
The following will accomplish this.
</p>
<div class="smallexample">
<pre class="smallexample">(gdb) alias -a di = disas
</pre></div>
 
<p>Note that aliases are different from user-defined commands.
With a user-defined command, you also need to write documentation
for it with the &lsquo;<samp>document</samp>&rsquo; command.
An alias automatically picks up the documentation of the existing command.
</p>
<p>Here is an example where we make &lsquo;<samp>elms</samp>&rsquo; an abbreviation of
&lsquo;<samp>elements</samp>&rsquo; in the &lsquo;<samp>set print elements</samp>&rsquo; command.
This is to show that you can make an abbreviation of any part
of a command.
</p>
<div class="smallexample">
<pre class="smallexample">(gdb) alias -a set print elms = set print elements
(gdb) alias -a show print elms = show print elements
(gdb) set p elms 20
(gdb) show p elms
Limit on string chars or array elements to print is 200.
</pre></div>
 
<p>Note that if you are defining an alias of a &lsquo;<samp>set</samp>&rsquo; command,
and you want to have an alias for the corresponding &lsquo;<samp>show</samp>&rsquo;
command, then you need to define the latter separately.
</p>
<p>Unambiguously abbreviated commands are allowed in <var>COMMAND</var> and
<var>ALIAS</var>, just as they are normally.
</p>
<div class="smallexample">
<pre class="smallexample">(gdb) alias -a set pr elms = set p ele
</pre></div>
 
<p>Finally, here is an example showing the creation of a one word
alias for a more complex command.
This creates alias &lsquo;<samp>spe</samp>&rsquo; of the command &lsquo;<samp>set print elements</samp>&rsquo;.
</p>
<div class="smallexample">
<pre class="smallexample">(gdb) alias spe = set print elements
(gdb) spe 20
</pre></div>
 
<hr>
<div class="header">
<p>
Previous: <a href="Multiple-Extension-Languages.html#Multiple-Extension-Languages" accesskey="p" rel="previous">Multiple Extension Languages</a>, Up: <a href="Extending-GDB.html#Extending-GDB" accesskey="u" rel="up">Extending GDB</a> &nbsp; [<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>