Annotation of 43BSDTahoe/old/man/sdb.0, revision 1.1.1.1

1.1       root        1: 
                      2: 
                      3: 
                      4: SDB(1)             UNIX Programmer's Manual               SDB(1)
                      5: 
                      6: 
                      7: 
                      8: NAME
                      9:      sdb - symbolic debugger
                     10: 
                     11: SYNOPSIS
                     12:      sdb [ objfil [ corfil [ directory ] ] ]
                     13: 
                     14: DESCRIPTION
                     15:      _S_d_b is a symbolic debugger which can be used with C, PASCAL,
                     16:      and F77 programs. It may be used to examine their files and
                     17:      to provide a controlled environment for their execution.
                     18: 
                     19:      _O_b_j_f_i_l is an executable program file which has been compiled
                     20:      with the -g (debug) option.  The default for _o_b_j_f_i_l is
                     21:      a.out. _C_o_r_f_i_l is assumed to be a core image file produced
                     22:      after executing _o_b_j_f_i_l; the default for _c_o_r_f_i_l is core. The
                     23:      core file need not be present.
                     24: 
                     25:      It is useful to know that at any time there is a _c_u_r_r_e_n_t
                     26:      _l_i_n_e and _c_u_r_r_e_n_t _f_i_l_e. If _c_o_r_f_i_l exists then they are ini-
                     27:      tially set to the line and file containing the source state-
                     28:      ment at which the process terminated or stopped.  Otherwise,
                     29:      they are set to the first line in main.  The current line
                     30:      and file may be changed with the source file examination
                     31:      commands.
                     32: 
                     33:      Names of variables are written just as they are in C, PAS-
                     34:      CAL, or F77.  Variables local to a procedure may be accessed
                     35:      using the form `procedure:variable'.  If no procedure name
                     36:      is given, the procedure containing the current line is used
                     37:      by default.  It is also possible to refer to structure
                     38:      members as `variable.member', pointers to structure members
                     39:      as `variable->member' and array elements as
                     40:      `variable[number]'.  Combinations of these forms may also be
                     41:      used.
                     42: 
                     43:      It is also possible to specify a variable by its address.
                     44:      All forms of integer constants which are valid in C may be
                     45:      used, so that addresses may be input in decimal, octal or
                     46:      hexadecimal.
                     47: 
                     48:      Line numbers in the source program are referred to as
                     49:      `filename:number' or `procedure:number'.  In either case the
                     50:      number is relative to the beginning of the file.  If no pro-
                     51:      cedure or file name is given, the current file is used by
                     52:      default.  If no number is given, the first line of the named
                     53:      procedure or file is used.
                     54: 
                     55: 
                     56:      The commands for examining data in the program are:
                     57: 
                     58:      t   Print a stack trace of the terminated or stopped pro-
                     59:          gram.
                     60: 
                     61: 
                     62: 
                     63: Printed 7/26/87              4/29/85                           1
                     64: 
                     65: 
                     66: 
                     67: 
                     68: 
                     69: 
                     70: SDB(1)             UNIX Programmer's Manual               SDB(1)
                     71: 
                     72: 
                     73: 
                     74:      T   Print the top line of the stack trace.
                     75: 
                     76:      variable/_l_m
                     77:          Print the value of variable according to length _l and
                     78:          format _m. If _l and _m are omitted, sdb chooses a length
                     79:          and format suitable for the variable's type as declared
                     80:          in the program.  The length specifiers are:
                     81: 
                     82:          b    one byte
                     83:          h    two bytes (half word)
                     84:          l    four bytes (long word)
                     85:          number
                     86:               string length for formats s and a
                     87: 
                     88:          Legal values for _m are:
                     89: 
                     90:          c    character
                     91:          d    decimal
                     92:          u    decimal, unsigned
                     93:          o    octal
                     94:          x    hexadecimal
                     95:          f    32 bit single precision floating point
                     96:          g    64 bit double precision floating point
                     97:          s    Assume variable is a string pointer and print
                     98:               characters until a null is reached.
                     99:          a    Print characters starting at the variable's
                    100:               address until a null is reached.
                    101:          p    pointer to procedure
                    102: 
                    103:          The length specifiers are only effective with the for-
                    104:          mats d, u, o and x.  If one of these formats is speci-
                    105:          fied and _l is omitted, the length defaults to the word
                    106:          length of the host machine; 4 for the DEC VAX/11-780.
                    107:          The last variable may be redisplayed with the command
                    108:          `./'.
                    109: 
                    110:          The sh(1) metacharacters * and ? may be used within
                    111:          procedure and variable names, providing a limited form
                    112:          of pattern matching.  If no procedure name is given,
                    113:          both variables local to the current procedure and glo-
                    114:          bal (common for F77) variables are matched, while if a
                    115:          procedure name is specified then only variables local
                    116:          to that procedure and matched.  To match only global
                    117:          variables (or blank common for F77), the form `:pat-
                    118:          tern' is used.  The name of a common block may be
                    119:          specified instead of a procedure name for F77 programs.
                    120: 
                    121:      variable=_l_m
                    122:      linenumber=_l_m
                    123:      number=_l_m
                    124:          Print the address of the variable or line number or the
                    125:          value of the number in the specified format.  If no
                    126: 
                    127: 
                    128: 
                    129: Printed 7/26/87              4/29/85                           2
                    130: 
                    131: 
                    132: 
                    133: 
                    134: 
                    135: 
                    136: SDB(1)             UNIX Programmer's Manual               SDB(1)
                    137: 
                    138: 
                    139: 
                    140:          format is given, then `lx' is used.  The last variant
                    141:          of this command provides a convenient way to convert
                    142:          between decimal, octal and hexadecimal.
                    143: 
                    144:      variable!value
                    145:          Set the variable to the given value.  The value may be
                    146:          a number, character constant or a variable.  If the
                    147:          variable is of type float or double, the value may also
                    148:          be a floating constant.
                    149: 
                    150: 
                    151:      The commands for examining source files are
                    152: 
                    153:      e procedure
                    154:      e filename.c
                    155:          Set the current file to the file containing the named
                    156:          procedure or the named filename.  Set the current line
                    157:          to the first line in the named procedure or file.  All
                    158:          source files are assumed to be in _d_i_r_e_c_t_o_r_y. The
                    159:          default for _d_i_r_e_c_t_o_r_y is the working directory.  If no
                    160:          procedure or file name is given, the current procedure
                    161:          and file names are reported.
                    162: 
                    163:      /regular expression/
                    164:          Search forward from the current line for a line con-
                    165:          taining a string matching the regular expression as in
                    166:          ed(1).  The trailing `/' may be elided.
                    167: 
                    168:      ?regular expression?
                    169:          Search backward from the current line for a line con-
                    170:          taining a string matching the regular expression as in
                    171:          ed(1).  The trailing `?' may be elided.
                    172: 
                    173:      p   Print the current line.
                    174: 
                    175:      z   Print the current line followed by the next 9 lines.
                    176:          Set the current line to the last line printed.
                    177: 
                    178:      control-D
                    179:          Scroll.  Print the next 10 lines.  Set the current line
                    180:          to the last line printed.
                    181: 
                    182:      w   Window.  Print the 10 lines around the current line.
                    183: 
                    184:      number
                    185:          Set the current line to the given line number.  Print
                    186:          the new current line.
                    187: 
                    188:      _c_o_u_n_t +
                    189:          Advance the current line by _c_o_u_n_t lines.  Print the new
                    190:          current line.
                    191: 
                    192: 
                    193: 
                    194: 
                    195: Printed 7/26/87              4/29/85                           3
                    196: 
                    197: 
                    198: 
                    199: 
                    200: 
                    201: 
                    202: SDB(1)             UNIX Programmer's Manual               SDB(1)
                    203: 
                    204: 
                    205: 
                    206:      _c_o_u_n_t -
                    207:          Retreat the current line by _c_o_u_n_t lines.  Print the new
                    208:          current line.
                    209: 
                    210: 
                    211:      The commands for controlling the execution of the source
                    212:      program are:
                    213: 
                    214:      _c_o_u_n_t r _a_r_g_s
                    215:      _c_o_u_n_t R
                    216:          Run the program with the given arguments.  The r com-
                    217:          mand with no arguments reuses the previous arguments to
                    218:          the program while the R command runs the program with
                    219:          no arguments.  An argument beginning with `<' or `>'
                    220:          causes redirection for the standard input or output
                    221:          respectively.  If _c_o_u_n_t is given, it specifies the
                    222:          number of breakpoints to be ignored.
                    223: 
                    224:      _l_i_n_e_n_u_m_b_e_r c _c_o_u_n_t
                    225:      _l_i_n_e_n_u_m_b_e_r C _c_o_u_n_t
                    226:          Continue after a breakpoint or interrupt.  If _c_o_u_n_t is
                    227:          given, it specifies the number of breakpoints to be
                    228:          ignored.  C continues with the signal which caused the
                    229:          program to stop and c ignores it.
                    230: 9       If a linenumber is specified then a temporary break-
                    231:          point is placed at the line and execution is continued.
                    232:          The breakpoint is deleted when the command finishes.
                    233: 
                    234:      _c_o_u_n_t s
                    235:          Single step.  Run the program through _c_o_u_n_t lines.  If
                    236:          no count is given then the program is run for one line.
                    237: 
                    238:      _c_o_u_n_t S
                    239:          Single step, but step through subroutine calls.
                    240: 
                    241:      k   Kill the debugged program.
                    242: 
                    243:      procedure(arg1,arg2,...)
                    244:      procedure(arg1,arg2,...)/_m
                    245:          Execute the named procedure with the given arguments.
                    246:          Arguments can be integer, character or string constants
                    247:          or names of variables accessible from the current pro-
                    248:          cedure.  The second form causes the value returned by
                    249:          the procedure to be printed according to format _m.  If
                    250:          no format is given, it defaults to `d'.
                    251: 
                    252:      _l_i_n_e_n_u_m_b_e_r b _c_o_m_m_a_n_d_s
                    253:          Set a breakpoint at the given line.  If a procedure
                    254:          name without a line number is given (e.g. `proc:'), a
                    255:          breakpoint is placed at the first line in the procedure
                    256:          even if it was not compiled with the debug flag.  If no
                    257:          _l_i_n_e_n_u_m_b_e_r is given, a breakpoint is placed at the
                    258: 
                    259: 
                    260: 
                    261: Printed 7/26/87              4/29/85                           4
                    262: 
                    263: 
                    264: 9
                    265: 
                    266: 
                    267: SDB(1)             UNIX Programmer's Manual               SDB(1)
                    268: 
                    269: 
                    270: 
                    271:          current line.
                    272: 9       If no _c_o_m_m_a_n_d_s are given then execution stops just
                    273:          before the breakpoint and control is returned to sdb.
                    274:          Otherwise the _c_o_m_m_a_n_d_s are executed when the breakpoint
                    275:          is encountered and execution continues.  Multiple com-
                    276:          mands are specified by separating them with semicolons.
                    277: 
                    278:      _l_i_n_e_n_u_m_b_e_r d
                    279:          Delete a breakpoint at the given line.  If no
                    280:          _l_i_n_e_n_u_m_b_e_r is given then the breakpoints are deleted
                    281:          interactively: Each breakpoint location is printed and
                    282:          a line is read from the standard input.  If the line
                    283:          begins with a `y' or `d' then the breakpoint is
                    284:          deleted.
                    285: 
                    286:      B   Print a list of the currently active breakpoints.
                    287: 
                    288:      D   Delete all breakpoints.
                    289: 
                    290:      l   Print the last executed line.
                    291: 
                    292:      _l_i_n_e_n_u_m_b_e_r a
                    293:          Announce.  If _l_i_n_e_n_u_m_b_e_r is of the form `proc:number',
                    294:          the command effectively does a `linenumber b l'.  If
                    295:          _l_i_n_e_n_u_m_b_e_r is of the form `proc:', the command effec-
                    296:          tively does a `proc: b T'.
                    297: 
                    298: 
                    299:      Miscellaneous commands.
                    300: 
                    301:      ! _c_o_m_m_a_n_d
                    302:          The command is interpreted by sh(1).
                    303: 
                    304:      newline
                    305:          If the previous command printed a source line then
                    306:          advance the current line by 1 line and print the new
                    307:          current line.  If the previous command displayed a core
                    308:          location then display the next core location.
                    309: 
                    310:      " _s_t_r_i_n_g
                    311:          Print the given string.
                    312: 
                    313:      q   Exit the debugger.
                    314: 
                    315: 
                    316:      The following commands also exist and are intended only for
                    317:      debugging the debugger.
                    318: 
                    319:      V   Print the version number.
                    320: 
                    321:      X   Print a list of procedures and files being debugged.
                    322: 9
                    323: 
                    324: 
                    325: Printed 7/26/87              4/29/85                           5
                    326: 
                    327: 
                    328: 
                    329: 
                    330: 
                    331: 
                    332: SDB(1)             UNIX Programmer's Manual               SDB(1)
                    333: 
                    334: 
                    335: 
                    336:      Y   Toggle debug output.
                    337: 
                    338: FILES
                    339:      a.out
                    340:      core
                    341: 
                    342: SEE ALSO
                    343:      adb(1)
                    344: 
                    345: DIAGNOSTICS
                    346:      Error reports are either identical to those of adb(1) or are
                    347:      self-explanatory.
                    348: 
                    349: BUGS
                    350:      If a procedure is called when the program is _n_o_t stopped at
                    351:      a breakpoint (such as when a core image is being debugged),
                    352:      all variables are initialized before the procedure is
                    353:      started.  This makes it impossible to use a procedure which
                    354:      formats data from a core image.
                    355: 
                    356:      Arrays must be of one dimension and of zero origin to be
                    357:      correctly addressed by sdb.
                    358: 
                    359:      The default type for printing F77 parameters is incorrect.
                    360:      Their address is printed instead of their value.
                    361: 
                    362:      Tracebacks containing F77 subprograms with multiple entry
                    363:      points may print too many arguments in the wrong order, but
                    364:      their values are correct.
                    365: 
                    366:      Sdb understands Pascal, but not its types.
                    367: 
                    368: 
                    369: 
                    370: 
                    371: 
                    372: 
                    373: 
                    374: 
                    375: 
                    376: 
                    377: 
                    378: 
                    379: 
                    380: 
                    381: 
                    382: 
                    383: 
                    384: 
                    385: 
                    386: 
                    387: 
                    388: 
                    389: 
                    390: 
                    391: Printed 7/26/87              4/29/85                           6
                    392: 
                    393: 
                    394: 

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.