<html lang="en">
<head>
<title>Objfiles In Python - 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="Python-API.html#Python-API" title="Python API">
<link rel="prev" href="Progspaces-In-Python.html#Progspaces-In-Python" title="Progspaces In Python">
<link rel="next" href="Frames-In-Python.html#Frames-In-Python" title="Frames In Python">
<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="Objfiles-In-Python"></a>
<p>
Next:&nbsp;<a rel="next" accesskey="n" href="Frames-In-Python.html#Frames-In-Python">Frames In Python</a>,
Previous:&nbsp;<a rel="previous" accesskey="p" href="Progspaces-In-Python.html#Progspaces-In-Python">Progspaces In Python</a>,
Up:&nbsp;<a rel="up" accesskey="u" href="Python-API.html#Python-API">Python API</a>
<hr>
</div>

<h5 class="subsubsection">23.2.2.14 Objfiles In Python</h5>

<p><a name="index-objfiles-in-python-1808"></a><a name="index-gdb_002eObjfile-1809"></a><a name="index-Objfile-1810"></a><span class="sc">gdb</span> loads symbols for an inferior from various
symbol-containing files (see <a href="Files.html#Files">Files</a>).  These include the primary
executable file, any shared libraries used by the inferior, and any
separate debug info files (see <a href="Separate-Debug-Files.html#Separate-Debug-Files">Separate Debug Files</a>). 
<span class="sc">gdb</span> calls these symbol-containing files <dfn>objfiles</dfn>.

   <p>The following objfile-related functions are available in the
<code>gdb</code> module:

   <p><a name="index-gdb_002ecurrent_005fobjfile-1811"></a>

<div class="defun">
&mdash; Function: <b>current_objfile</b><var><a name="index-current_005fobjfile-1812"></a></var><br>
<blockquote><p>When auto-loading a Python script (see <a href="Auto_002dloading.html#Auto_002dloading">Auto-loading</a>), <span class="sc">gdb</span>
sets the &ldquo;current objfile&rdquo; to the corresponding objfile.  This
function returns the current objfile.  If there is no current objfile,
this function returns <code>None</code>. 
</p></blockquote></div>

   <p><a name="index-gdb_002eobjfiles-1813"></a>

<div class="defun">
&mdash; Function: <b>objfiles</b><var><a name="index-objfiles-1814"></a></var><br>
<blockquote><p>Return a sequence of all the objfiles current known to <span class="sc">gdb</span>. 
See <a href="Objfiles-In-Python.html#Objfiles-In-Python">Objfiles In Python</a>. 
</p></blockquote></div>

   <p>Each objfile is represented by an instance of the <code>gdb.Objfile</code>
class.

<div class="defun">
&mdash; Instance Variable of Objfile: <b>filename</b><var><a name="index-filename-1815"></a></var><br>
<blockquote><p>The file name of the objfile as a string. 
</p></blockquote></div>

<div class="defun">
&mdash; Instance Variable of Objfile: <b>pretty_printers</b><var><a name="index-pretty_005fprinters-1816"></a></var><br>
<blockquote><p>The <code>pretty_printers</code> attribute is a list of functions.  It is
used to look up pretty-printers.  A <code>Value</code> is passed to each
function in order; if the function returns <code>None</code>, then the
search continues.  Otherwise, the return value should be an object
which is used to format the value.  See <a href="Pretty-Printing-API.html#Pretty-Printing-API">Pretty Printing API</a>, for more
information. 
</p></blockquote></div>

   </body></html>

