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
<!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: Extending GDB</title>
 
<meta name="description" content="Debugging with GDB: Extending GDB">
<meta name="keywords" content="Debugging with GDB: Extending GDB">
<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="index.html#Top" rel="up" title="Top">
<link href="Sequences.html#Sequences" rel="next" title="Sequences">
<link href="Other-Misc-Settings.html#Other-Misc-Settings" rel="previous" title="Other Misc Settings">
<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="Extending-GDB"></a>
<div class="header">
<p>
Next: <a href="Interpreters.html#Interpreters" accesskey="n" rel="next">Interpreters</a>, Previous: <a href="Controlling-GDB.html#Controlling-GDB" accesskey="p" rel="previous">Controlling GDB</a>, Up: <a href="index.html#Top" accesskey="u" rel="up">Top</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="Extending-GDB-1"></a>
<h2 class="chapter">23 Extending <small>GDB</small></h2>
<a name="index-extending-GDB"></a>
 
<p><small>GDB</small> provides several mechanisms for extension.
<small>GDB</small> also provides the ability to automatically load
extensions when it reads a file for debugging.  This allows the
user to automatically customize <small>GDB</small> for the program
being debugged.
</p>
<table class="menu" border="0" cellspacing="0">
<tr><td align="left" valign="top">&bull; <a href="Sequences.html#Sequences" accesskey="1">Sequences</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">Canned Sequences of <small>GDB</small> Commands
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="Python.html#Python" accesskey="2">Python</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">Extending <small>GDB</small> using Python
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="Guile.html#Guile" accesskey="3">Guile</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">Extending <small>GDB</small> using Guile
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="Auto_002dloading-extensions.html#Auto_002dloading-extensions" accesskey="4">Auto-loading extensions</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">Automatically loading extensions
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="Multiple-Extension-Languages.html#Multiple-Extension-Languages" accesskey="5">Multiple Extension Languages</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">Working with multiple extension languages
</td></tr>
<tr><td align="left" valign="top">&bull; <a href="Aliases.html#Aliases" accesskey="6">Aliases</a>:</td><td>&nbsp;&nbsp;</td><td align="left" valign="top">Creating new spellings of existing commands
</td></tr>
</table>
 
<p>To facilitate the use of extension languages, <small>GDB</small> is capable
of evaluating the contents of a file.  When doing so, <small>GDB</small>
can recognize which extension language is being used by looking at
the filename extension.  Files with an unrecognized filename extension
are always treated as a <small>GDB</small> Command Files.
See <a href="Command-Files.html#Command-Files">Command files</a>.
</p>
<p>You can control how <small>GDB</small> evaluates these files with the following
setting:
</p>
<dl compact="compact">
<dd><a name="index-set-script_002dextension"></a>
<a name="index-show-script_002dextension"></a>
</dd>
<dt><code>set script-extension off</code></dt>
<dd><p>All scripts are always evaluated as <small>GDB</small> Command Files.
</p>
</dd>
<dt><code>set script-extension soft</code></dt>
<dd><p>The debugger determines the scripting language based on filename
extension.  If this scripting language is supported, <small>GDB</small>
evaluates the script using that language.  Otherwise, it evaluates
the file as a <small>GDB</small> Command File.
</p>
</dd>
<dt><code>set script-extension strict</code></dt>
<dd><p>The debugger determines the scripting language based on filename
extension, and evaluates the script using that language.  If the
language is not supported, then the evaluation fails.
</p>
</dd>
<dt><code>show script-extension</code></dt>
<dd><p>Display the current value of the <code>script-extension</code> option.
</p>
</dd>
</dl>
 
 
<hr>
<div class="header">
<p>
Next: <a href="Interpreters.html#Interpreters" accesskey="n" rel="next">Interpreters</a>, Previous: <a href="Controlling-GDB.html#Controlling-GDB" accesskey="p" rel="previous">Controlling GDB</a>, Up: <a href="index.html#Top" accesskey="u" rel="up">Top</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>