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
<!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: Python Auto-loading</title>
 
<meta name="description" content="Debugging with GDB: Python Auto-loading">
<meta name="keywords" content="Debugging with GDB: Python 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="Python.html#Python" rel="up" title="Python">
<link href="Python-modules.html#Python-modules" rel="next" title="Python modules">
<link href="TUI-Windows-In-Python.html#TUI-Windows-In-Python" rel="previous" title="TUI Windows In Python">
<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="Python-Auto_002dloading"></a>
<div class="header">
<p>
Next: <a href="Python-modules.html#Python-modules" accesskey="n" rel="next">Python modules</a>, Previous: <a href="Python-API.html#Python-API" accesskey="p" rel="previous">Python API</a>, Up: <a href="Python.html#Python" accesskey="u" rel="up">Python</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="Python-Auto_002dloading-1"></a>
<h4 class="subsection">23.2.3 Python Auto-loading</h4>
<a name="index-Python-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 Python support scripts in several ways:
<samp><var>objfile</var>-gdb.py</samp> and <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-python_002dscripts"></a><a name="index-set-auto_002dload-python_002dscripts"></a>
</dd>
<dt><code>set auto-load python-scripts [on|off]</code></dt>
<dd><p>Enable or disable the auto-loading of Python scripts.
</p>
<a name="show-auto_002dload-python_002dscripts"></a><a name="index-show-auto_002dload-python_002dscripts"></a>
</dd>
<dt><code>show auto-load python-scripts</code></dt>
<dd><p>Show whether auto-loading of Python scripts is enabled or disabled.
</p>
<a name="info-auto_002dload-python_002dscripts"></a><a name="index-info-auto_002dload-python_002dscripts"></a>
<a name="index-print-list-of-auto_002dloaded-Python-scripts"></a>
</dd>
<dt><code>info auto-load python-scripts [<var>regexp</var>]</code></dt>
<dd><p>Print the list of all Python scripts that <small>GDB</small> auto-loaded.
</p>
<p>Also printed is the list of Python scripts that were mentioned in
the <code>.debug_gdb_scripts</code> section and were either not found
(see <a href="dotdebug_005fgdb_005fscripts-section.html#dotdebug_005fgdb_005fscripts-section">dotdebug_gdb_scripts section</a>) or were not auto-loaded due to
<code>auto-load safe-path</code> rejection (see <a href="Auto_002dloading.html#Auto_002dloading">Auto-loading</a>).
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 Python scripts with matching names are printed.
</p>
<p>Example:
</p>
<div class="smallexample">
<pre class="smallexample">(gdb) info auto-load python-scripts
Loaded Script
Yes    py-section-script.py
       full name: /tmp/py-section-script.py
No     my-foo-pretty-printers.py
</pre></div>
</dd>
</dl>
 
<p>When reading an auto-loaded file or script, <small>GDB</small> sets the
<em>current objfile</em>.  This is available via the <code>gdb.current_objfile</code>
function (see <a href="Objfiles-In-Python.html#Objfiles-In-Python">Objfiles In Python</a>).  This can be useful for
registering objfile-specific pretty-printers and frame-filters.
</p>
<hr>
<div class="header">
<p>
Next: <a href="Python-modules.html#Python-modules" accesskey="n" rel="next">Python modules</a>, Previous: <a href="Python-API.html#Python-API" accesskey="p" rel="previous">Python API</a>, Up: <a href="Python.html#Python" accesskey="u" rel="up">Python</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>