##### 23.2.2.20 Symbol table representation in Python.

Access to symbol table data maintained by gdb on the inferior is exposed to Python via two objects: `gdb.Symtab_and_line` and `gdb.Symtab`. Symbol table and line data for a frame is returned from the `find_sal` method in `gdb.Frame` object. See Frames In Python.

For more information on gdb's symbol table management, see Examining the Symbol Table, for more information.

A `gdb.Symtab_and_line` object has the following attributes:

— Variable: Symtab_and_line.symtab

> The symbol table object (`gdb.Symtab`) for this frame. This attribute is not writable.

— Variable: Symtab_and_line.pc

> Indicates the start of the address range occupied by code for the current source line. This attribute is not writable.

— Variable: Symtab_and_line.last

> Indicates the end of the address range occupied by code for the current source line. This attribute is not writable.

— Variable: Symtab_and_line.line

> Indicates the current line number for this object. This attribute is not writable.

A `gdb.Symtab_and_line` object has the following methods:

— Function: Symtab_and_line.is_valid ()

> Returns `True` if the `gdb.Symtab_and_line` object is valid, `False` if not. A `gdb.Symtab_and_line` object can become invalid if the Symbol table and line object it refers to does not exist in gdb any longer. All other `gdb.Symtab_and_line` methods will throw an exception if it is invalid at the time the method is called.

A `gdb.Symtab` object has the following attributes:

— Variable: Symtab.filename

> The symbol table's source filename. This attribute is not writable.

— Variable: Symtab.objfile

> The symbol table's backing object file. See Objfiles In Python. This attribute is not writable.

A `gdb.Symtab` object has the following methods:

— Function: Symtab.is_valid ()

> Returns `True` if the `gdb.Symtab` object is valid, `False` if not. A `gdb.Symtab` object can become invalid if the symbol table it refers to does not exist in gdb any longer. All other `gdb.Symtab` methods will throw an exception if it is invalid at the time the method is called.

— Function: Symtab.fullname ()

> Return the symbol table's source absolute file name.

— Function: Symtab.global_block ()

> Return the global block of the underlying symbol table. See Blocks In Python.

— Function: Symtab.static_block ()

> Return the static block of the underlying symbol table. See Blocks In Python.