DOC HOME SITE MAP MAN PAGES GNU INFO SEARCH PRINT BOOK
 

(gdb.info) Files

Info Catalog (gdb.info) GDB Files (gdb.info) Symbol Errors
 
 Commands to specify files
 =========================
 
    You may want to specify executable and core dump file names.  The
 usual way to do this is at start-up time, using the arguments to GDB's
 start-up commands ( Getting In and Out of GDB Invocation.).
 
    Occasionally it is necessary to change to a different file during a
 GDB session.  Or you may run GDB and forget to specify a file you want
 to use.  In these situations the GDB commands to specify new files are
 useful.
 
 `file FILENAME'
      Use FILENAME as the program to be debugged.  It is read for its
      symbols and for the contents of pure memory.  It is also the
      program executed when you use the `run' command.  If you do not
      specify a directory and the file is not found in the GDB working
      directory, GDB uses the environment variable `PATH' as a list of
      directories to search, just as the shell does when looking for a
      program to run.  You can change the value of this variable, for
      both GDB and your program, using the `path' command.
 
      On systems with memory-mapped files, an auxiliary file named
      `FILENAME.syms' may hold symbol table information for FILENAME.
      If so, GDB maps in the symbol table from `FILENAME.syms', starting
      up more quickly.  See the descriptions of the file options
      `-mapped' and `-readnow' (available on the command line, and with
      the commands `file', `symbol-file', or `add-symbol-file',
      described below), for more information.
 
 `file'
      `file' with no argument makes GDB discard any information it has
      on both executable file and the symbol table.
 
 `exec-file [ FILENAME ]'
      Specify that the program to be run (but not the symbol table) is
      found in FILENAME.  GDB searches the environment variable `PATH'
      if necessary to locate your program.  Omitting FILENAME means to
      discard information on the executable file.
 
 `symbol-file [ FILENAME ]'
      Read symbol table information from file FILENAME.  `PATH' is
      searched when necessary.  Use the `file' command to get both symbol
      table and program to run from the same file.
 
      `symbol-file' with no argument clears out GDB information on your
      program's symbol table.
 
      The `symbol-file' command causes GDB to forget the contents of its
      convenience variables, the value history, and all breakpoints and
      auto-display expressions.  This is because they may contain
      pointers to the internal data recording symbols and data types,
      which are part of the old symbol table data being discarded inside
      GDB.
 
      `symbol-file' does not repeat if you press <RET> again after
      executing it once.
 
      When GDB is configured for a particular environment, it
      understands debugging information in whatever format is the
      standard generated for that environment; you may use either a GNU
      compiler, or other compilers that adhere to the local conventions.
      Best results are usually obtained from GNU compilers; for example,
      using `gcc' you can generate debugging information for optimized
      code.
 
      For most kinds of object files, with the exception of old SVR3
      systems using COFF, the `symbol-file' command does not normally
      read the symbol table in full right away.  Instead, it scans the
      symbol table quickly to find which source files and which symbols
      are present.  The details are read later, one source file at a
      time, as they are needed.
 
      The purpose of this two-stage reading strategy is to make GDB
      start up faster.  For the most part, it is invisible except for
      occasional pauses while the symbol table details for a particular
      source file are being read.  (The `set verbose' command can turn
      these pauses into messages if desired.   Optional warnings
      and messages Messages/Warnings.)
 
      We have not implemented the two-stage strategy for COFF yet.  When
      the symbol table is stored in COFF format, `symbol-file' reads the
      symbol table data in full right away.  Note that "stabs-in-COFF"
      still does the two-stage strategy, since the debug info is actually
      in stabs format.
 
 `symbol-file FILENAME [ -readnow ] [ -mapped ]'
 `file FILENAME [ -readnow ] [ -mapped ]'
      You can override the GDB two-stage strategy for reading symbol
      tables by using the `-readnow' option with any of the commands that
      load symbol table information, if you want to be sure GDB has the
      entire symbol table available.
 
      If memory-mapped files are available on your system through the
      `mmap' system call, you can use another option, `-mapped', to
      cause GDB to write the symbols for your program into a reusable
      file.  Future GDB debugging sessions map in symbol information
      from this auxiliary symbol file (if the program has not changed),
      rather than spending time reading the symbol table from the
      executable program.  Using the `-mapped' option has the same
      effect as starting GDB with the `-mapped' command-line option.
 
      You can use both options together, to make sure the auxiliary
      symbol file has all the symbol information for your program.
 
      The auxiliary symbol file for a program called MYPROG is called
      `MYPROG.syms'.  Once this file exists (so long as it is newer than
      the corresponding executable), GDB always attempts to use it when
      you debug MYPROG; no special options or commands are needed.
 
      The `.syms' file is specific to the host machine where you run
      GDB.  It holds an exact image of the internal GDB symbol table.
      It cannot be shared across multiple host platforms.
 
 `core-file [ FILENAME ]'
      Specify the whereabouts of a core dump file to be used as the
      "contents of memory".  Traditionally, core files contain only some
      parts of the address space of the process that generated them; GDB
      can access the executable file itself for other parts.
 
      `core-file' with no argument specifies that no core file is to be
      used.
 
      Note that the core file is ignored when your program is actually
      running under GDB.  So, if you have been running your program and
      you wish to debug a core file instead, you must kill the
      subprocess in which the program is running.  To do this, use the
      `kill' command ( Killing the child process Kill Process.).
 
 `add-symbol-file FILENAME ADDRESS'
 `add-symbol-file FILENAME ADDRESS [ -readnow ] [ -mapped ]'
 `add-symbol-file FILENAME ADDRESS DATA_ADDRESS BSS_ADDRESS'
 `add-symbol-file FILENAME -TSECTION ADDRESS'
      The `add-symbol-file' command reads additional symbol table
      information from the file FILENAME.  You would use this command
      when FILENAME has been dynamically loaded (by some other means)
      into the program that is running.  ADDRESS should be the memory
      address at which the file has been loaded; GDB cannot figure this
      out for itself.  You can specify up to three addresses, in which
      case they are taken to be the addresses of the text, data, and bss
      segments respectively.  For complicated cases, you can specify an
      arbitrary number of `-TSECTION ADDRESS' pairs, to give an explicit
      section name and base address for that section.  You can specify
      any ADDRESS as an expression.
 
      The symbol table of the file FILENAME is added to the symbol table
      originally read with the `symbol-file' command.  You can use the
      `add-symbol-file' command any number of times; the new symbol data
      thus read keeps adding to the old.  To discard all old symbol data
      instead, use the `symbol-file' command without any arguments.
 
      `add-symbol-file' does not repeat if you press <RET> after using
      it.
 
      You can use the `-mapped' and `-readnow' options just as with the
      `symbol-file' command, to change how GDB manages the symbol table
      information for FILENAME.
 
 `add-shared-symbol-file'
      The `add-shared-symbol-file' command can be used only under
      Harris' CXUX operating system for the Motorola 88k.  GDB
      automatically looks for shared libraries, however if GDB does not
      find yours, you can run `add-shared-symbol-file'.  It takes no
      arguments.
 
 `section'
      The `section' command changes the base address of section SECTION
      of the exec file to ADDR.  This can be used if the exec file does
      not contain section addresses, (such as in the a.out format), or
      when the addresses specified in the file itself are wrong.  Each
      section must be changed separately.  The `info files' command,
      described below, lists all the sections and their addresses.
 
 `info files'
 `info target'
      `info files' and `info target' are synonymous; both print the
      current target ( Specifying a Debugging Target Targets.),
      including the names of the executable and core dump files
      currently in use by GDB, and the files from which symbols were
      loaded.  The command `help target' lists all possible targets
      rather than current ones.
 
    All file-specifying commands allow both absolute and relative file
 names as arguments.  GDB always converts the file name to an absolute
 file name and remembers it that way.
 
    GDB supports HP-UX, SunOS, SVr4, Irix 5, and IBM RS/6000 shared
 libraries.
 
    GDB automatically loads symbol definitions from shared libraries
 when you use the `run' command, or when you examine a core file.
 (Before you issue the `run' command, GDB does not understand references
 to a function in a shared library, however--unless you are debugging a
 core file).
 
    On HP-UX, if the program loads a library explicitly, GDB
 automatically loads the symbols at the time of the `shl_load' call.
 
 `info share'
 `info sharedlibrary'
      Print the names of the shared libraries which are currently loaded.
 
 `sharedlibrary REGEX'
 `share REGEX'
      Load shared object library symbols for files matching a Unix
      regular expression.  As with files loaded automatically, it only
      loads shared libraries required by your program for a core file or
      after typing `run'.  If REGEX is omitted all shared libraries
      required by your program are loaded.
 
    On HP-UX systems, GDB detects the loading of a shared library and
 automatically reads in symbols from the newly loaded library, up to a
 threshold that is initially set but that you can modify if you wish.
 
    Beyond that threshold, symbols from shared libraries must be
 explicitly loaded.  To load these symbols, use the command
 `sharedlibrary FILENAME'.  The base address of the shared library is
 determined automatically by GDB and need not be specified.
 
    To display or set the threshold, use the commands:
 
 `set auto-solib-add THRESHOLD'
      Set the autoloading size threshold, in megabytes.  If THRESHOLD is
      nonzero, symbols from all shared object libraries will be loaded
      automatically when the inferior begins execution or when the
      dynamic linker informs GDB that a new library has been loaded,
      until the symbol table of the program and libraries exceeds this
      threshold.  Otherwise, symbols must be loaded manually, using the
      `sharedlibrary' command.  The default threshold is 100 megabytes.
 
 `show auto-solib-add'
      Display the current autoloading size threshold, in megabytes.
 
Info Catalog (gdb.info) GDB Files (gdb.info) Symbol Errors
automatically generated byinfo2html