


gdb(1)                      GNU Tools                      gdb(1)


NNAAMMEE
       gdb - The GNU Debugger

SSYYNNOOPPSSIISS
       ggddbb    [--hheellpp] [--nnxx] [--qq] [--bbaattcchh] [--ccdd==_d_i_r] [--ff] [--bb _b_p_s]
              [--ttttyy==_d_e_v] [--ss _s_y_m_f_i_l_e] [--ee _p_r_o_g] [--ssee _p_r_o_g] [--cc
              _c_o_r_e] [--xx _c_m_d_s] [--dd _d_i_r] [_p_r_o_g[_c_o_r_e|_p_r_o_c_I_D_]_]

DDEESSCCRRIIPPTTIIOONN
       The  purpose  of a debugger such as GDB is to allow you to
       see what is going on ``inside'' another program  while  it
       executes--or  what another program was doing at the moment
       it crashed.

       GDB can do four main kinds of things (plus other things in
       support of these) to help you catch bugs in the act:


          o   Start  your program, specifying anything that might
              affect its behavior.


          o   Make your program stop on specified conditions.


          o   Examine what has happened, when  your  program  has
              stopped.


          o   Change  things  in your program, so you can experi-
              ment with correcting the effects of one bug and  go
              on to learn about another.


       You  can  use GDB to debug programs written in C, C++, and
       Modula-2.  Fortran support will be added when a  GNU  For-
       tran compiler is ready.

       GDB  is invoked with the shell command ggddbb.  Once started,
       it reads commands from the terminal until you tell  it  to
       exit  with  the GDB command qquuiitt.  You can get online help
       from ggddbb itself by using the command hheellpp.

       You can run ggddbb with no arguments or options; but the most
       usual way to start GDB is with one argument or two, speci-
       fying an executable program as the argument:

       gdb program


       You can also start with both an executable program  and  a
       core file specified:

       gdb program core



GNU Tools                    4nov1991                           1





gdb(1)                      GNU Tools                      gdb(1)


       You  can,  instead, specify a process ID as a second argu-
       ment, if you want to debug a running process:

       gdb program 1234


       would attach GDB to process 11223344 (unless you also  have  a
       file  named `11223344'; GDB does check for a core file first).

       Here are some of the most frequently needed GDB commands:

       bbrreeaakk [_f_i_l_e::]_f_u_n_c_t_i_o_n
               Set a breakpoint at _f_u_n_c_t_i_o_n (in _f_i_l_e).

       rruunn [_a_r_g_l_i_s_t]
              Start your program (with _a_r_g_l_i_s_t, if specified).

       bbtt     Backtrace: display the program stack.

       pprriinntt _e_x_p_r
               Display the value of an expression.

       cc      Continue running your program (after stopping, e.g.
              at a breakpoint).

       nneexxtt   Execute  next  program  line (after stopping); step
              _o_v_e_r any function calls in the line.

       sstteepp   Execute next program line  (after  stopping);  step
              _i_n_t_o any function calls in the line.

       hheellpp [_n_a_m_e]
              Show information about GDB command _n_a_m_e, or general
              information about using GDB.

       qquuiitt   Exit from GDB.

       For full details on GDB, see _U_s_i_n_g _G_D_B_: _A _G_u_i_d_e _t_o _t_h_e _G_N_U
       _S_o_u_r_c_e_-_L_e_v_e_l  _D_e_b_u_g_g_e_r,  by Richard M. Stallman and Roland
       H. Pesch.  The same text is available online  as  the  ggddbb
       entry in the iinnffoo program.

OOPPTTIIOONNSS
       Any  arguments  other  than  options specify an executable
       file and core file (or process ID);  that  is,  the  first
       argument  encountered  with  no  associated option flag is
       equivalent to a `--ssee' option, and the second, if  any,  is
       equivalent  to  a  `--cc' option if it's the name of a file.
       Many options have both long  and  short  forms;  both  are
       shown  here.   The  long  forms are also recognized if you
       truncate them, so long as enough of the option is  present
       to  be  unambiguous.   (If you prefer, you can flag option
       arguments with `++' rather than `--', though  we  illustrate
       the more usual convention.)



GNU Tools                    4nov1991                           2





gdb(1)                      GNU Tools                      gdb(1)


       All  the  options  and command line arguments you give are
       processed in sequential order.  The order makes a  differ-
       ence when the `--xx' option is used.


       --hheellpp

       --hh     List all options, with brief explanations.


       --ssyymmbboollss==_f_i_l_e

       --ss _f_i_l_e
               Read symbol table from file _f_i_l_e.


       --eexxeecc==_f_i_l_e

       --ee _f_i_l_e
                Use  file  _f_i_l_e as the executable file to execute
              when appropriate, and for examining  pure  data  in
              conjunction with a core dump.


       --ssee==_f_i_l_e
               Read symbol table from file _f_i_l_e and use it as the
              executable file.


       --ccoorree==_f_i_l_e

       --cc _f_i_l_e
               Use file _f_i_l_e as a core dump to examine.


       --ccoommmmaanndd==_f_i_l_e

       --xx _f_i_l_e
               Execute GDB commands from file _f_i_l_e.


       --ddiirreeccttoorryy==_d_i_r_e_c_t_o_r_y

       --dd _d_i_r_e_c_t_o_r_y
               Add _d_i_r_e_c_t_o_r_y to the path  to  search  for  source
              files.



       --nnxx

       --nn     Do  not  execute  commands from any `..ggddbbiinniitt' ini-
              tialization files.  Normally, the commands in these
              files  are  executed  after all the command options



GNU Tools                    4nov1991                           3





gdb(1)                      GNU Tools                      gdb(1)


              and arguments have been processed.



       --qquuiieett

       --qq     ``Quiet''.  Do not print the introductory and copy-
              right messages.  These messages are also suppressed
              in batch mode.


       --bbaattcchh Run in batch mode.  Exit with status 00  after  pro-
              cessing  all  the command files specified with `--xx'
              (and `..ggddbbiinniitt',  if  not  inhibited).   Exit  with
              nonzero  status if an error occurs in executing the
              GDB commands in the command files.

              Batch mode may be useful for running GDB as a  fil-
              ter,  for  example to download and run a program on
              another computer; in order to make this  more  use-
              ful, the message

              Program exited normally.


              (which is ordinarily issued whenever a program run-
              ning under GDB control terminates)  is  not  issued
              when running in batch mode.


       --ccdd==_d_i_r_e_c_t_o_r_y
                Run GDB using _d_i_r_e_c_t_o_r_y as its working directory,
              instead of the current directory.


       --ffuullllnnaammee

       --ff     Emacs sets this option when it runs GDB as  a  sub-
              process.  It tells GDB to output the full file name
              and line number in a standard, recognizable fashion
              each   time  a  stack  frame  is  displayed  (which
              includes each time the program stops).  This recog-
              nizable  format  looks  like  two ` 3322' characters,
              followed by the file name, line number and  charac-
              ter  position  separated  by colons, and a newline.
              The Emacs-to-GDB interface  program  uses  the  two
              ` 3322'  characters as a signal to display the source
              code for the frame.


       --bb _b_p_s  Set the line speed (baud rate or bits per  second)
              of  any  serial  interface  used  by GDB for remote
              debugging.




GNU Tools                    4nov1991                           4





gdb(1)                      GNU Tools                      gdb(1)


       --ttttyy==_d_e_v_i_c_e
               Run using _d_e_v_i_c_e for your program's standard input
              and output.



SSEEEE AALLSSOO
       `ggddbb' entry in iinnffoo; _U_s_i_n_g _G_D_B_: _A _G_u_i_d_e _t_o _t_h_e _G_N_U _S_o_u_r_c_e_-
       _L_e_v_e_l _D_e_b_u_g_g_e_r, Richard M. Stallman and Roland  H.  Pesch,
       July 1991.

CCOOPPYYIINNGG
       Copyright (c) 1991 Free Software Foundation, Inc.

       Permission  is  granted  to  make  and distribute verbatim
       copies of this manual provided the  copyright  notice  and
       this permission notice are preserved on all copies.

       Permission is granted to copy and distribute modified ver-
       sions of this manual under  the  conditions  for  verbatim
       copying,  provided  that the entire resulting derived work
       is distributed under the  terms  of  a  permission  notice
       identical to this one.

       Permission  is granted to copy and distribute translations
       of this manual into another language, under the above con-
       ditions for modified versions, except that this permission
       notice may be included in  translations  approved  by  the
       Free  Software  Foundation  instead  of  in  the  original
       English.



























GNU Tools                    4nov1991                           5


