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
<!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: Guile Auto-loading</title>
 
<meta name="description" content="Debugging with GDB: Guile Auto-loading">
<meta name="keywords" content="Debugging with GDB: Guile Auto-loading">
<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="Guile.html#Guile" rel="up" title="Guile">
<link href="Guile-Modules.html#Guile-Modules" rel="next" title="Guile Modules">
<link href="Iterators-In-Guile.html#Iterators-In-Guile" rel="previous" title="Iterators In Guile">
<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="Guile-Auto_002dloading"></a>
<div class="header">
<p>
Next: <a href="Guile-Modules.html#Guile-Modules" accesskey="n" rel="next">Guile Modules</a>, Previous: <a href="Guile-API.html#Guile-API" accesskey="p" rel="previous">Guile API</a>, Up: <a href="Guile.html#Guile" accesskey="u" rel="up">Guile</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="Guile-Auto_002dloading-1"></a>
<h4 class="subsection">23.3.4 Guile Auto-loading</h4>
<a name="index-guile-auto_002dloading"></a>
 
<p>When a new object file is read (for example, due to the <code>file</code>
command, or because the inferior has loaded a shared library),
<small>GDB</small> will look for Guile support scripts in two ways:
<samp><var>objfile</var>-gdb.scm</samp> and the <code>.debug_gdb_scripts</code> section.
See <a href="Auto_002dloading-extensions.html#Auto_002dloading-extensions">Auto-loading extensions</a>.
</p>
<p>The auto-loading feature is useful for supplying application-specific
debugging commands and scripts.
</p>
<p>Auto-loading can be enabled or disabled,
and the list of auto-loaded scripts can be printed.
</p>
<dl compact="compact">
<dd><a name="set-auto_002dload-guile_002dscripts"></a><a name="index-set-auto_002dload-guile_002dscripts"></a>
</dd>
<dt><code>set auto-load guile-scripts [on|off]</code></dt>
<dd><p>Enable or disable the auto-loading of Guile scripts.
</p>
<a name="show-auto_002dload-guile_002dscripts"></a><a name="index-show-auto_002dload-guile_002dscripts"></a>
</dd>
<dt><code>show auto-load guile-scripts</code></dt>
<dd><p>Show whether auto-loading of Guile scripts is enabled or disabled.
</p>
<a name="info-auto_002dload-guile_002dscripts"></a><a name="index-info-auto_002dload-guile_002dscripts"></a>
<a name="index-print-list-of-auto_002dloaded-Guile-scripts"></a>
</dd>
<dt><code>info auto-load guile-scripts [<var>regexp</var>]</code></dt>
<dd><p>Print the list of all Guile scripts that <small>GDB</small> auto-loaded.
</p>
<p>Also printed is the list of Guile scripts that were mentioned in
the <code>.debug_gdb_scripts</code> section and were not found.
This is useful because their names are not printed when <small>GDB</small>
tries to load them and fails.  There may be many of them, and printing
an error message for each one is problematic.
</p>
<p>If <var>regexp</var> is supplied only Guile scripts with matching names are printed.
</p>
<p>Example:
</p>
<div class="smallexample">
<pre class="smallexample">(gdb) info auto-load guile-scripts
Loaded Script
Yes    scm-section-script.scm
       full name: /tmp/scm-section-script.scm
No     my-foo-pretty-printers.scm
</pre></div>
</dd>
</dl>
 
<p>When reading an auto-loaded file, <small>GDB</small> sets the
<em>current objfile</em>.  This is available via the <code>current-objfile</code>
procedure (see <a href="Objfiles-In-Guile.html#Objfiles-In-Guile">Objfiles In Guile</a>).  This can be useful for
registering objfile-specific pretty-printers.
</p>
 
 
 
</body>
</html>