blob: cfbef8ba186b91a3a259f53f40c8abce5c4fc1f0 [file] [log] [blame]
<html lang="en">
<head>
<title>.debug_gdb_scripts section - Debugging with GDB</title>
<meta http-equiv="Content-Type" content="text/html">
<meta name="description" content="Debugging with GDB">
<meta name="generator" content="makeinfo 4.13">
<link title="Top" rel="start" href="index.html#Top">
<link rel="up" href="Auto_002dloading.html#Auto_002dloading" title="Auto-loading">
<link rel="prev" href="objfile_002dgdb_002epy-file.html#objfile_002dgdb_002epy-file" title="objfile-gdb.py file">
<link rel="next" href="Which-flavor-to-choose_003f.html#Which-flavor-to-choose_003f" title="Which flavor to choose?">
<link href="http://www.gnu.org/software/texinfo/" rel="generator-home" title="Texinfo Homepage">
<!--
Copyright (C) 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996,
1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
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.''-->
<meta http-equiv="Content-Style-Type" content="text/css">
<style type="text/css"><!--
pre.display { font-family:inherit }
pre.format { font-family:inherit }
pre.smalldisplay { font-family:inherit; font-size:smaller }
pre.smallformat { font-family:inherit; font-size:smaller }
pre.smallexample { font-size:smaller }
pre.smalllisp { font-size:smaller }
span.sc { font-variant:small-caps }
span.roman { font-family:serif; font-weight:normal; }
span.sansserif { font-family:sans-serif; font-weight:normal; }
--></style>
<link rel="stylesheet" type="text/css" href="../cs.css">
</head>
<body>
<div class="node">
<a name=".debug_gdb_scripts-section"></a>
<a name="g_t_002edebug_005fgdb_005fscripts-section"></a>
<p>
Next:&nbsp;<a rel="next" accesskey="n" href="Which-flavor-to-choose_003f.html#Which-flavor-to-choose_003f">Which flavor to choose?</a>,
Previous:&nbsp;<a rel="previous" accesskey="p" href="objfile_002dgdb_002epy-file.html#objfile_002dgdb_002epy-file">objfile-gdb.py file</a>,
Up:&nbsp;<a rel="up" accesskey="u" href="Auto_002dloading.html#Auto_002dloading">Auto-loading</a>
<hr>
</div>
<h5 class="subsubsection">23.2.3.2 The <code>.debug_gdb_scripts</code> section</h5>
<p><a name="index-g_t_0040code_007b_002edebug_005fgdb_005fscripts_007d-section-1948"></a>
For systems using file formats like ELF and COFF,
when <span class="sc">gdb</span> loads a new object file
it will look for a special section named &lsquo;<samp><span class="samp">.debug_gdb_scripts</span></samp>&rsquo;.
If this section exists, its contents is a list of names of scripts to load.
<p><span class="sc">gdb</span> will look for each specified script file first in the
current directory and then along the source search path
(see <a href="Source-Path.html#Source-Path">Specifying Source Directories</a>),
except that <samp><span class="file">$cdir</span></samp> is not searched, since the compilation
directory is not relevant to scripts.
<p>Entries can be placed in section <code>.debug_gdb_scripts</code> with,
for example, this GCC macro:
<pre class="example"> /* Note: The "MS" section flags are to remove duplicates. */
#define DEFINE_GDB_SCRIPT(script_name) \
asm("\
.pushsection \".debug_gdb_scripts\", \"MS\",@progbits,1\n\
.byte 1\n\
.asciz \"" script_name "\"\n\
.popsection \n\
");
</pre>
<p class="noindent">Then one can reference the macro in a header or source file like this:
<pre class="example"> DEFINE_GDB_SCRIPT ("my-app-scripts.py")
</pre>
<p>The script name may include directories if desired.
<p>If the macro is put in a header, any application or library
using this header will get a reference to the specified script.
</body></html>