157 lines
7.6 KiB
HTML
157 lines
7.6 KiB
HTML
<html lang="en">
|
|
<head>
|
|
<title>Symbol Tables 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="Symbols-In-Python.html#Symbols-In-Python" title="Symbols In Python">
|
|
<link rel="next" href="Line-Tables-In-Python.html#Line-Tables-In-Python" title="Line Tables In Python">
|
|
<link href="http://www.gnu.org/software/texinfo/" rel="generator-home" title="Texinfo Homepage">
|
|
<!--
|
|
Copyright (C) 1988-2019 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>
|
|
</head>
|
|
<body>
|
|
<div class="node">
|
|
<a name="Symbol-Tables-In-Python"></a>
|
|
<p>
|
|
Next: <a rel="next" accesskey="n" href="Line-Tables-In-Python.html#Line-Tables-In-Python">Line Tables In Python</a>,
|
|
Previous: <a rel="previous" accesskey="p" href="Symbols-In-Python.html#Symbols-In-Python">Symbols In Python</a>,
|
|
Up: <a rel="up" accesskey="u" href="Python-API.html#Python-API">Python API</a>
|
|
<hr>
|
|
</div>
|
|
|
|
<h5 class="subsubsection">23.2.2.28 Symbol table representation in Python</h5>
|
|
|
|
<p><a name="index-symbol-tables-in-python-2361"></a><a name="index-gdb_002eSymtab-2362"></a><a name="index-gdb_002eSymtab_005fand_005fline-2363"></a>
|
|
Access to symbol table data maintained by <span class="sc">gdb</span> on the inferior
|
|
is exposed to Python via two objects: <code>gdb.Symtab_and_line</code> and
|
|
<code>gdb.Symtab</code>. Symbol table and line data for a frame is returned
|
|
from the <code>find_sal</code> method in <code>gdb.Frame</code> object.
|
|
See <a href="Frames-In-Python.html#Frames-In-Python">Frames In Python</a>.
|
|
|
|
<p>For more information on <span class="sc">gdb</span>'s symbol table management, see
|
|
<a href="Symbols.html#Symbols">Examining the Symbol Table</a>, for more information.
|
|
|
|
<p>A <code>gdb.Symtab_and_line</code> object has the following attributes:
|
|
|
|
<div class="defun">
|
|
— Variable: <b>Symtab_and_line.symtab</b><var><a name="index-Symtab_005fand_005fline_002esymtab-2364"></a></var><br>
|
|
<blockquote><p>The symbol table object (<code>gdb.Symtab</code>) for this frame.
|
|
This attribute is not writable.
|
|
</p></blockquote></div>
|
|
|
|
<div class="defun">
|
|
— Variable: <b>Symtab_and_line.pc</b><var><a name="index-Symtab_005fand_005fline_002epc-2365"></a></var><br>
|
|
<blockquote><p>Indicates the start of the address range occupied by code for the
|
|
current source line. This attribute is not writable.
|
|
</p></blockquote></div>
|
|
|
|
<div class="defun">
|
|
— Variable: <b>Symtab_and_line.last</b><var><a name="index-Symtab_005fand_005fline_002elast-2366"></a></var><br>
|
|
<blockquote><p>Indicates the end of the address range occupied by code for the current
|
|
source line. This attribute is not writable.
|
|
</p></blockquote></div>
|
|
|
|
<div class="defun">
|
|
— Variable: <b>Symtab_and_line.line</b><var><a name="index-Symtab_005fand_005fline_002eline-2367"></a></var><br>
|
|
<blockquote><p>Indicates the current line number for this object. This
|
|
attribute is not writable.
|
|
</p></blockquote></div>
|
|
|
|
<p>A <code>gdb.Symtab_and_line</code> object has the following methods:
|
|
|
|
<div class="defun">
|
|
— Function: <b>Symtab_and_line.is_valid</b> ()<var><a name="index-Symtab_005fand_005fline_002eis_005fvalid-2368"></a></var><br>
|
|
<blockquote><p>Returns <code>True</code> if the <code>gdb.Symtab_and_line</code> object is valid,
|
|
<code>False</code> if not. A <code>gdb.Symtab_and_line</code> object can become
|
|
invalid if the Symbol table and line object it refers to does not
|
|
exist in <span class="sc">gdb</span> any longer. All other
|
|
<code>gdb.Symtab_and_line</code> methods will throw an exception if it is
|
|
invalid at the time the method is called.
|
|
</p></blockquote></div>
|
|
|
|
<p>A <code>gdb.Symtab</code> object has the following attributes:
|
|
|
|
<div class="defun">
|
|
— Variable: <b>Symtab.filename</b><var><a name="index-Symtab_002efilename-2369"></a></var><br>
|
|
<blockquote><p>The symbol table's source filename. This attribute is not writable.
|
|
</p></blockquote></div>
|
|
|
|
<div class="defun">
|
|
— Variable: <b>Symtab.objfile</b><var><a name="index-Symtab_002eobjfile-2370"></a></var><br>
|
|
<blockquote><p>The symbol table's backing object file. See <a href="Objfiles-In-Python.html#Objfiles-In-Python">Objfiles In Python</a>.
|
|
This attribute is not writable.
|
|
</p></blockquote></div>
|
|
|
|
<div class="defun">
|
|
— Variable: <b>Symtab.producer</b><var><a name="index-Symtab_002eproducer-2371"></a></var><br>
|
|
<blockquote><p>The name and possibly version number of the program that
|
|
compiled the code in the symbol table.
|
|
The contents of this string is up to the compiler.
|
|
If no producer information is available then <code>None</code> is returned.
|
|
This attribute is not writable.
|
|
</p></blockquote></div>
|
|
|
|
<p>A <code>gdb.Symtab</code> object has the following methods:
|
|
|
|
<div class="defun">
|
|
— Function: <b>Symtab.is_valid</b> ()<var><a name="index-Symtab_002eis_005fvalid-2372"></a></var><br>
|
|
<blockquote><p>Returns <code>True</code> if the <code>gdb.Symtab</code> object is valid,
|
|
<code>False</code> if not. A <code>gdb.Symtab</code> object can become invalid if
|
|
the symbol table it refers to does not exist in <span class="sc">gdb</span> any
|
|
longer. All other <code>gdb.Symtab</code> methods will throw an exception
|
|
if it is invalid at the time the method is called.
|
|
</p></blockquote></div>
|
|
|
|
<div class="defun">
|
|
— Function: <b>Symtab.fullname</b> ()<var><a name="index-Symtab_002efullname-2373"></a></var><br>
|
|
<blockquote><p>Return the symbol table's source absolute file name.
|
|
</p></blockquote></div>
|
|
|
|
<div class="defun">
|
|
— Function: <b>Symtab.global_block</b> ()<var><a name="index-Symtab_002eglobal_005fblock-2374"></a></var><br>
|
|
<blockquote><p>Return the global block of the underlying symbol table.
|
|
See <a href="Blocks-In-Python.html#Blocks-In-Python">Blocks In Python</a>.
|
|
</p></blockquote></div>
|
|
|
|
<div class="defun">
|
|
— Function: <b>Symtab.static_block</b> ()<var><a name="index-Symtab_002estatic_005fblock-2375"></a></var><br>
|
|
<blockquote><p>Return the static block of the underlying symbol table.
|
|
See <a href="Blocks-In-Python.html#Blocks-In-Python">Blocks In Python</a>.
|
|
</p></blockquote></div>
|
|
|
|
<div class="defun">
|
|
— Function: <b>Symtab.linetable</b> ()<var><a name="index-Symtab_002elinetable-2376"></a></var><br>
|
|
<blockquote><p>Return the line table associated with the symbol table.
|
|
See <a href="Line-Tables-In-Python.html#Line-Tables-In-Python">Line Tables In Python</a>.
|
|
</p></blockquote></div>
|
|
|
|
</body></html>
|
|
|