Annotation of researchv10dc/man/mana/sdb.1, revision 1.1.1.1

1.1       root        1: .TH SDB 1
                      2: .CT 1 debug_tune
                      3: .SH NAME
                      4: sdb \- symbolic debugger
                      5: .SH SYNOPSIS
                      6: .B sdb
                      7: [
                      8: .I objfil
                      9: [
                     10: .I corfil
                     11: [
                     12: .I directory
                     13: ]
                     14: ]
                     15: ]
                     16: .SH DESCRIPTION
                     17: .I Sdb
                     18: is a symbolic debugger.
                     19: It may examine source files, object files, and running or stopped
                     20: core images.
                     21: .PP
                     22: .I Objfil
                     23: is an executable program (default
                     24: .BR a.out )
                     25: compiled with option
                     26: .B -g
                     27: of
                     28: .I cc
                     29: or
                     30: .IR f77 (1).
                     31: .I Corfil
                     32: is a core image (default
                     33: .BR core )
                     34: resulting from the execution of
                     35: .I objfil .
                     36: .I Directory
                     37: is the home of source files,
                     38: .L .
                     39: by default.
                     40: .PP
                     41: .I Sdb
                     42: maintains a `current line' and a `current file', initially
                     43: the line number and source file name where 
                     44: .I corfil
                     45: stopped executing, or the first line in function
                     46: .LR main
                     47: if there is no core image.
                     48: .PP
                     49: Variables are referred to by name, by structure or array
                     50: reference, or by a combination thereof.
                     51: Variables not in scope at the current line
                     52: are referred to as
                     53: .IB procedure : variable
                     54: .RI ( procedure
                     55: may be a Fortran common block).
                     56: In the syntax below, a `variable' may also be an integer constant
                     57: designating a storage location, or a variable plus a constant
                     58: designating a storage offset.
                     59: .PP
                     60: Line numbers in the source program are referred to as
                     61: .IB filename : number,
                     62: .IB procedure : number, 
                     63: or
                     64: .I number
                     65: (in the current file).
                     66: The number is always relative to the beginning of the file.
                     67: A missing number is taken as
                     68: the first line of the procedure or file.
                     69: .PP
                     70: The commands for examining data are:
                     71: .nr xx \w'control-D\ '
                     72: .TP \n(xxu
                     73: .B t
                     74: Print a stack trace of the terminated or stopped program.
                     75: .TP
                     76: .B T
                     77: Print the top line of the stack trace.
                     78: .TP
                     79: .IB variable / lm 
                     80: .PD
                     81: .TP
                     82: .IB variable ? lm 
                     83: Print the value of the variable according to (an optional)
                     84: length
                     85: .I l
                     86: and format
                     87: .I m.
                     88: By default
                     89: .I l
                     90: and
                     91: .I m
                     92: are taken from the variable's declaration.
                     93: The length specifier for formats
                     94: .B duox
                     95: is
                     96: .BR b 
                     97: (1 byte),
                     98: .BR h 
                     99: (2 bytes),
                    100: or
                    101: .BR l
                    102: (4 bytes, default).
                    103: For formats
                    104: .B s
                    105: and
                    106: .BR a 
                    107: it is an integer string length.
                    108: Punctuation
                    109: .B /
                    110: designates variables in data segments,
                    111: .B ?
                    112: in the text segment.
                    113: Legal values for format
                    114: .I m
                    115: are:
                    116: .PD
                    117: .RS
                    118: .TP
                    119: .B c
                    120: character
                    121: .PD0
                    122: .TP
                    123: .B d
                    124: decimal
                    125: .TP
                    126: .B u
                    127: decimal, unsigned
                    128: .TP
                    129: .B o
                    130: octal
                    131: .TP
                    132: .B x
                    133: hexadecimal
                    134: .TP
                    135: .B f
                    136: 32 bit single precision floating point
                    137: .TP
                    138: .B g
                    139: 64 bit double precision floating point
                    140: .TP
                    141: .B s
                    142: Assume variable is a string pointer and print characters until a null is
                    143: reached.
                    144: .TP
                    145: .B a
                    146: Print characters starting at the variable's address until a null
                    147: is reached.
                    148: .TP
                    149: .B p
                    150: pointer to procedure
                    151: .TP
                    152: .B i
                    153: machine instruction
                    154: .PD
                    155: .RE
                    156: .TP \n(xxu
                    157: \fIvariable\f5=\fP\fIlm\fR
                    158: .br
                    159: .ns
                    160: .TP
                    161: \fIlinenumber\f5=\fP\fIlm\fR
                    162: .br
                    163: .ns
                    164: .TP
                    165: \fInumber\f5=\fP\fIlm\fR
                    166: Print the address of the variable or line number or the value of the number
                    167: in the specified format,
                    168: .B lx
                    169: by default.
                    170: The last variant may be used to convert
                    171: number bases.
                    172: .TP
                    173: .IB variable ! value
                    174: Set the variable to the given value.
                    175: The value may be an integer or character constant, a variable, or
                    176: a floating-point constant
                    177: (if
                    178: .I variable
                    179: is float or double).
                    180: .PP
                    181: The commands for examining source files are
                    182: .TP \n(xxu
                    183: .BI e " procedure"
                    184: .br
                    185: .ns
                    186: .TP
                    187: .BI e " filename" .c
                    188: Set the current line and file.
                    189: If no name is given, report the current procedure and file.
                    190: .TP
                    191: .BI / "regular expression" /
                    192: Search forward as in
                    193: .IR ed (1).
                    194: .TP
                    195: .BI ? "regular expression" ?
                    196: Search backward.
                    197: .TP
                    198: .B p
                    199: Print the current line.
                    200: .TP
                    201: .B z
                    202: Print the current line and 9 more;
                    203: set the current line to the last one printed.
                    204: .TP
                    205: control-D
                    206: Print the next 10 lines;
                    207: set the current line to the last one printed.
                    208: .TP
                    209: .B w
                    210: Window.
                    211: Print the 10 lines around the current line.
                    212: .TP
                    213: .I number
                    214: Set the current line and print it.
                    215: .TP
                    216: .IB count " +"
                    217: Advance the current line by \fIcount\fP lines.
                    218: Print the new current line.
                    219: .TP
                    220: .IB count " -"
                    221: Retreat the current line by
                    222: .I count
                    223: lines.
                    224: Print the new current line.
                    225: .PP
                    226: The commands for controlling the execution of the source program are:
                    227: .TP \n(xxu
                    228: .IB count " r " args
                    229: .br
                    230: .ns
                    231: .TP
                    232: .IB count " R"
                    233: Run the program with the given arguments.
                    234: The
                    235: .B r
                    236: command with no arguments reuses the previous arguments
                    237: to the program while the
                    238: .B R
                    239: command
                    240: runs the program with no arguments.
                    241: An argument beginning with 
                    242: .L <
                    243: or 
                    244: .L >
                    245: causes redirection for the
                    246: standard input or output respectively.
                    247: .I Count,
                    248: if given,
                    249: specifies a number of breakpoints to be ignored.
                    250: .TP
                    251: .IB linenumber " c " count
                    252: .br
                    253: .ns
                    254: .TP
                    255: .IB linenumber " C " count
                    256: Continue after a breakpoint or interrupt.
                    257: .I Count
                    258: is as for
                    259: .LR r .
                    260: .B C
                    261: continues with the signal which caused the program to stop and
                    262: .B c
                    263: ignores it.
                    264: If a
                    265: .I linenumber
                    266: is given, a temporary breakpoint is placed there and is
                    267: deleted when the command finishes.
                    268: .TP
                    269: .IB count " s"
                    270: Single step.
                    271: Run the program through
                    272: .I count
                    273: lines, one line by default.
                    274: .TP
                    275: .IB count " S"
                    276: Single step, but step through subroutine calls.
                    277: .TP
                    278: .B k
                    279: Kill the debugged program.
                    280: .TP
                    281: .IB procedure ( arg1,arg2,... )/  m 
                    282: Execute the named procedure with the given arguments.
                    283: Arguments can be variables in scope or integer,
                    284: character or string constants.
                    285: If a format,
                    286: .BI / m,
                    287: is given, print the result in that form, otherwise
                    288: .LR d .
                    289: .TP
                    290: .I linenumber " b " commands
                    291: Set a breakpoint at the given line.
                    292: If a procedure name without a line number is given (e.g.
                    293: .LR proc: ),
                    294: a breakpoint is placed at the first line in the procedure.
                    295: If no
                    296: .I linenumber
                    297: is given,
                    298: a breakpoint is placed at the current line.
                    299: .IP
                    300: If no
                    301: .I commands
                    302: are given, stop execution just before the breakpoint.
                    303: Otherwise, when the breakpoint is encountered perform
                    304: the semicolon-separated
                    305: .I commands
                    306: and then continue execution.
                    307: .TP
                    308: .IB linenumber " d"
                    309: Delete a breakpoint at the given line.
                    310: If no
                    311: .I linenumber
                    312: is given,
                    313: each breakpoint location is printed and a line is read from the standard input.
                    314: Answer
                    315: .L y
                    316: or 
                    317: .L d
                    318: to delete it.
                    319: .TP
                    320: .B B
                    321: Print a list of the currently active breakpoints.
                    322: .TP
                    323: .B D
                    324: Delete all breakpoints.
                    325: .TP
                    326: .B l
                    327: Print the last executed line.
                    328: .TP
                    329: .IB linenumber " a
                    330: Announce.
                    331: If
                    332: .I linenumber
                    333: is of the form
                    334: .IB proc : number
                    335: the command does 
                    336: .LR "linenumber b\ l" 
                    337: (print the line each time it's reached).
                    338: If
                    339: .I linenumber
                    340: is of the form
                    341: .LR proc: ,
                    342: the command does
                    343: .L "proc: b T" 
                    344: (print the stack frame).
                    345: .PP
                    346: Miscellaneous commands.
                    347: .TP
                    348: .BI ! " command"
                    349: The command is interpreted by
                    350: .IR sh (1).
                    351: .TP
                    352: newline
                    353: Advance to the next storage location or source line,
                    354: depending on which was last printed, and display it.
                    355: .TP
                    356: \f5"\fI string\fR
                    357: Print the given string.
                    358: .TP
                    359: .B q
                    360: Exit the debugger.
                    361: .PP
                    362: The following commands are intended for
                    363: debugging the debugger.
                    364: .TP \n(xxu
                    365: .B V
                    366: Print the version number.
                    367: .PD0
                    368: .TP
                    369: .B X
                    370: Print a list of procedures and files being debugged.
                    371: .TP
                    372: .B Y
                    373: Toggle debug output.
                    374: .PD
                    375: .SH FILES
                    376: .F a.out
                    377: .br
                    378: .F core
                    379: .SH SEE ALSO
                    380: .IR adb (1), 
                    381: .IR pi (9.1), 
                    382: .IR cin (1),
                    383: .IR nm (1),
                    384: .IR a.out (5),
                    385: .IR bigcore (1),
                    386: .IR cc (1),
                    387: .IR f77 (1)
                    388: .SH BUGS
                    389: .I Sdb
                    390: is old and unmaintained.
                    391: .br
                    392: If a procedure is called when the program is not
                    393: stopped at a breakpoint, a fresh core image results.
                    394: Thus a procedure can't be used to extract data from a dump.
                    395: .br
                    396: .I Sdb 
                    397: doesn't know Fortran: arrays are singly dimensioned
                    398: and 0-indexed; scalar arguments are reported as pointers.
                    399: .br
                    400: The default type for printing Fortran parameters is incorrect:
                    401: address instead of value.
                    402: .br
                    403: Tracebacks containing Fortran subprograms with multiple entry points
                    404: may print too many arguments in the wrong order, but their values
                    405: are correct.
                    406: .br
                    407: The meaning of control-D is nonstandard.

unix.superglobalmegacorp.com

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