<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>

