#### 23.3.3.14 Objfiles In Guile

GDB loads symbols for an inferior from various symbol-containing files (see Files). These include the primary executable file, any shared libraries used by the inferior, and any separate debug info files (see Separate Debug Files). GDB calls these symbol-containing files objfiles.

Each objfile is represented as an object of type `<gdb:objfile>`.

The following objfile-related procedures are provided by the `(gdb)` module:

Scheme Procedure: objfile? object

  Return `#t` if object is a `<gdb:objfile>` object. Otherwise return `#f`.

Scheme Procedure: objfile-valid? objfile

  Return `#t` if objfile is valid, `#f` if not. A `<gdb:objfile>` object can become invalid if the object file it refers to is not loaded in GDB any longer. All other `<gdb:objfile>` procedures will throw an exception if it is invalid at the time the procedure is called.

Scheme Procedure: objfile-filename objfile

  Return the file name of objfile as a string, with symbolic links resolved.

Scheme Procedure: objfile-progspace objfile

  Return the `<gdb:progspace>` that this object file lives in. See Progspaces In Guile, for more on progspaces.

Scheme Procedure: objfile-pretty-printers objfile

  Return the list of registered `<gdb:pretty-printer>` objects for objfile. See Guile Pretty Printing API, for more information.

Scheme Procedure: set-objfile-pretty-printers! objfile printer-list

  Set the list of registered `<gdb:pretty-printer>` objects for objfile to printer-list. The printer-list must be a list of `<gdb:pretty-printer>` objects. See Guile Pretty Printing API, for more information.

Scheme Procedure: current-objfile

  When auto-loading a Guile script (see Guile Auto-loading), GDB sets the “current objfile” to the corresponding objfile. This function returns the current objfile. If there is no current objfile, this function returns `#f`.

Scheme Procedure: objfiles

  Return a list of all the objfiles in the current program space.