Annotation of cci/usr/src/man/man1/adb.1, revision 1.1

1.1     ! root        1: .TH ADB 1 4/1/81
        !             2: .UC 4
        !             3: .SH NAME
        !             4: adb \- debugger
        !             5: .SH SYNOPSIS
        !             6: .B adb
        !             7: [\fB\-w\fR] [ \fB\-k\fR ] [ objfil [ corfil ] ]
        !             8: .ds TW \v'.25m'\s+2~\s-2\v'-.25m'
        !             9: .ds ST \v'.25m'*\v'-.25m'
        !            10: .ds IM \v'.1m'=\v'-.1m'\s-2\h'-.1m'>\h'.1m'\s+2
        !            11: .ds LE \(<=
        !            12: .ds LT \s-2<\s+2
        !            13: .ds GT \s-2>\s+2
        !            14: .SH DESCRIPTION
        !            15: .I Adb
        !            16: is a general purpose debugging program.
        !            17: It may be used to examine files and to provide
        !            18: a controlled environment for the execution
        !            19: of UNIX programs.
        !            20: .PP
        !            21: .I Objfil
        !            22: is normally an executable program file, preferably
        !            23: containing a symbol table;
        !            24: if not then the
        !            25: symbolic features of
        !            26: .I  adb
        !            27: cannot be used although the file can still
        !            28: be examined.
        !            29: The default for
        !            30: .I objfil
        !            31: is
        !            32: .B  a.out.
        !            33: .I Corfil
        !            34: is assumed to be a core image file produced after
        !            35: executing
        !            36: .IR objfil ;
        !            37: the default for
        !            38: .I corfil
        !            39: is
        !            40: .B  core.
        !            41: .PP
        !            42: Requests to
        !            43: .I  adb
        !            44: are read from the standard input and
        !            45: responses are to the standard output.
        !            46: If the
        !            47: .B  \-w
        !            48: flag is present then both
        !            49: .I  objfil
        !            50: and
        !            51: .I corfil
        !            52: are
        !            53: created if necessary and
        !            54: opened for reading and writing
        !            55: so that files can be modified using
        !            56: .IR adb .
        !            57: .PP
        !            58: The \fB\-k\fP option makes \fIadb\fP do UNIX kernel memory
        !            59: mapping; it should be used when \fIcore\fP is a UNIX crash dump.
        !            60: .PP
        !            61: .I Adb
        !            62: ignores QUIT; INTERRUPT
        !            63: causes return to the next
        !            64: .I adb
        !            65: command.
        !            66: .PP
        !            67: In general requests to
        !            68: .I  adb
        !            69: are of the form
        !            70: .PP
        !            71: .if n .ti 16
        !            72: .if t .ti 1.6i
        !            73: [\|\fIaddress\fR\|]  [\|,
        !            74: .IR count \|]
        !            75: [\|\fIcommand\fR\|] [\|;\|]
        !            76: .PP
        !            77: If
        !            78: .I address
        !            79: is present then
        !            80: .I  dot
        !            81: is set to
        !            82: .IR address .
        !            83: Initially
        !            84: .I dot
        !            85: is set to 0.
        !            86: For most commands
        !            87: .I count
        !            88: specifies how many times
        !            89: the command will be executed.
        !            90: The default
        !            91: .I count
        !            92: is 1.
        !            93: .I Address
        !            94: and
        !            95: .I count
        !            96: are expressions.
        !            97: .PP
        !            98: The interpretation of an address depends
        !            99: on the context it is used in.
        !           100: If a subprocess is being debugged then
        !           101: addresses are interpreted
        !           102: in the usual way in the address space of the subprocess.
        !           103: If the operating system is being debugged either post-mortem or using
        !           104: the special file
        !           105: .B /dev/kmem
        !           106: to interactive examine and/or modify memory the maps are set to map
        !           107: the kernel virtual addresses which start at 0xC0000000.
        !           108: For further details of address mapping see
        !           109: .SM ADDRESSES.
        !           110: .SH EXPRESSIONS
        !           111: .TP 7.2n
        !           112: .B .
        !           113: The value of
        !           114: .IR dot .
        !           115: .TP 7.2n
        !           116: +
        !           117: The value of
        !           118: .I dot
        !           119: incremented by the current increment.
        !           120: .TP 7.2n
        !           121: ^
        !           122: The value of
        !           123: .I dot
        !           124: decremented by the current increment.
        !           125: .TP 7.2n
        !           126: "
        !           127: The last
        !           128: .I address
        !           129: typed.
        !           130: .TP 7.2n
        !           131: .I integer
        !           132: A number.  The prefixes 0o and 0O (\*(lqzero oh\*(rq) force interpretation
        !           133: in octal radix; the prefixes 0t and 0T force interpretation in
        !           134: decimal radix; the prefixes 0x and 0X force interpretation in
        !           135: hexadecimal radix.  Thus 0o20 = 0t16 = 0x10 = sixteen.
        !           136: If no prefix appears, then the
        !           137: .I default\ radix
        !           138: is used; see the $d command.  The default radix is initially hexadecimal.
        !           139: The hexadecimal digits are 0123456789abcdefABCDEF with the obvious
        !           140: values.  Note that a hexadecimal number whose most significant
        !           141: digit would otherwise be an alphabetic character must have a 0x
        !           142: (or 0X) prefix (or a leading zero if the default radix is hexadecimal).
        !           143: .TP 7.2n
        !           144: .IB integer . fraction
        !           145: A 32 bit floating point number.
        !           146: .TP 7.2n
        !           147: .I \'cccc\|\'
        !           148: The ASCII value of up to 4 characters.
        !           149: \\ may be used to escape a \'.
        !           150: .TP 7.2n
        !           151: .I \*(LT name
        !           152: The value of
        !           153: .IR name ,
        !           154: which is either a variable name or a register name.
        !           155: .I Adb
        !           156: maintains a number of variables
        !           157: (see
        !           158: .SM VARIABLES\*S)
        !           159: named by single letters or digits.
        !           160: If
        !           161: .I name
        !           162: is a register name then
        !           163: the value of the register is obtained from
        !           164: the system header in
        !           165: .IR corfil .
        !           166: The register names are
        !           167: those printed by the $r command.
        !           168: .TP 7.2n
        !           169: .I symbol
        !           170: A
        !           171: .I symbol
        !           172: is a sequence
        !           173: of upper or lower case letters, underscores or
        !           174: digits, not starting with a digit.
        !           175: .BR \\ " may be used to escape other characters."
        !           176: The value of the
        !           177: .I symbol
        !           178: is taken from the symbol table
        !           179: in
        !           180: .IR objfil .
        !           181: An initial \_ or \*(TW will be prepended to
        !           182: .I symbol
        !           183: if needed.
        !           184: .TP
        !           185: .I _ symbol
        !           186: In C, the `true name' of an external symbol begins with _.
        !           187: It may be necessary to utter this name to distinguish it
        !           188: from internal or hidden variables of a program.
        !           189: .TP 7.2n
        !           190: .IB routine . name
        !           191: The address of the variable
        !           192: .I name
        !           193: in the specified
        !           194: C routine.
        !           195: Both
        !           196: .I routine
        !           197: and
        !           198: .I name
        !           199: are
        !           200: .IR symbols .
        !           201: If
        !           202: .I name
        !           203: is omitted the value is the address of the
        !           204: most recently activated C stack frame
        !           205: corresponding to
        !           206: .IR routine .
        !           207: (This form is currently broken on the TAHOE; local variables can be examined
        !           208: only with
        !           209: .IR sdb (1).)
        !           210: .TP 7.2n
        !           211: .RI ( exp \|)
        !           212: The value of the expression
        !           213: .IR exp .
        !           214: .LP
        !           215: .SM
        !           216: .B  "Monadic\ operators"
        !           217: .TP 7.2n
        !           218: .RI \*(ST exp
        !           219: The contents of the location addressed
        !           220: by
        !           221: .I exp
        !           222: in
        !           223: .IR corfil .
        !           224: .TP 7.2n
        !           225: .RI @ exp
        !           226: The contents of the location addressed by
        !           227: .I exp
        !           228: in
        !           229: .IR objfil .
        !           230: .TP 7.2n
        !           231: .RI \- exp
        !           232: Integer negation.
        !           233: .TP 7.2n
        !           234: .RI \*(TW exp
        !           235: Bitwise complement.
        !           236: .TP 7.2n
        !           237: .RI # exp
        !           238: Logical negation.
        !           239: .LP
        !           240: .B  "Dyadic\ operators"
        !           241: are left associative
        !           242: and are less binding than monadic operators.
        !           243: .TP 7.2n
        !           244: .IR e1 + e2
        !           245: Integer addition.
        !           246: .TP 7.2n
        !           247: .IR e1 \- e2
        !           248: Integer subtraction.
        !           249: .TP 7.2n
        !           250: .IR e1 \*(ST e2
        !           251: Integer multiplication.
        !           252: .TP 7.2n
        !           253: .IR e1 % e2
        !           254: Integer division.
        !           255: .TP 7.2n
        !           256: .IR e1 & e2
        !           257: Bitwise conjunction.
        !           258: .TP 7.2n
        !           259: .IR e1 \(bv e2
        !           260: Bitwise disjunction.
        !           261: .TP 7.2n
        !           262: .IR e1 # e2
        !           263: .I E1
        !           264: rounded up to the next multiple of
        !           265: .IR e2 .
        !           266: .DT
        !           267: .SH COMMANDS
        !           268: Most commands consist of a verb followed by a modifier or list
        !           269: of modifiers.
        !           270: The following verbs are available.
        !           271: (The commands `?' and `/' may be followed by `\*(ST';
        !           272: see
        !           273: .SM ADDRESSES
        !           274: for further details.)
        !           275: .TP .5i
        !           276: .RI ? f
        !           277: Locations starting at
        !           278: .I address
        !           279: in
        !           280: .I  objfil
        !           281: are printed according to the format
        !           282: .IR f .
        !           283: .I dot
        !           284: is incremented by the sum of the increments for each format letter (q.v.).
        !           285: .TP
        !           286: .RI / f
        !           287: Locations starting at
        !           288: .I address
        !           289: in
        !           290: .I  corfil
        !           291: are printed according to the format
        !           292: .I f
        !           293: and
        !           294: .I dot
        !           295: is incremented as for `?'.
        !           296: .TP
        !           297: .RI  = f
        !           298: The value of
        !           299: .I address
        !           300: itself is printed in the
        !           301: styles indicated by the format
        !           302: .IR f .
        !           303: (For
        !           304: .B i 
        !           305: format `?' is printed for the parts of the instruction that reference
        !           306: subsequent words.)
        !           307: .PP
        !           308: A
        !           309: .I format
        !           310: consists of one or more characters that specify a style
        !           311: of printing.
        !           312: Each format character may be preceded by a decimal integer
        !           313: that is a repeat count for the format character.
        !           314: While stepping through a format
        !           315: .I dot
        !           316: is incremented
        !           317: by the amount given for each format letter.
        !           318: If no format is given then the last format is used.
        !           319: The format letters available are as follows.
        !           320: .ta 2.5n .5i
        !           321: .RS
        !           322: .TP
        !           323: .BR o "        2"
        !           324: Print 2 bytes in octal.
        !           325: All octal numbers output by
        !           326: .I adb
        !           327: are preceded by 0.
        !           328: .br
        !           329: .ns
        !           330: .TP
        !           331: .BR O "        4"
        !           332: Print 4 bytes in octal.
        !           333: .br
        !           334: .ns
        !           335: .TP
        !           336: .BR q "        2"
        !           337: Print in signed octal.
        !           338: .br
        !           339: .ns
        !           340: .TP
        !           341: .BR Q "        4"
        !           342: Print long signed octal.
        !           343: .br
        !           344: .ns
        !           345: .TP
        !           346: .BR d "        2"
        !           347: Print in decimal.
        !           348: .br
        !           349: .ns
        !           350: .TP
        !           351: .BR D "        4"
        !           352: Print long decimal.
        !           353: .br
        !           354: .ns
        !           355: .TP
        !           356: .BR x "        2"
        !           357: Print 2 bytes in hexadecimal.
        !           358: .br
        !           359: .ns
        !           360: .TP
        !           361: .BR X "        4"
        !           362: Print 4 bytes in hexadecimal.
        !           363: .br
        !           364: .ns
        !           365: .TP
        !           366: .BR z "        2"
        !           367: Print 2 bytes in signed hexadecimal.
        !           368: .br
        !           369: .ns
        !           370: .TP
        !           371: .BR Z "        4"
        !           372: Print 4 bytes in signed hexadecimal.
        !           373: .br
        !           374: .ns
        !           375: .TP
        !           376: .BR u "        2"
        !           377: Print as an unsigned decimal number.
        !           378: .br
        !           379: .ns
        !           380: .TP
        !           381: .BR U "        4"
        !           382: Print long unsigned decimal.
        !           383: .br
        !           384: .ns
        !           385: .TP
        !           386: .BR f "        4"
        !           387: Print the 32 bit value
        !           388: as a floating point number.
        !           389: .br
        !           390: .ns
        !           391: .TP
        !           392: .BR F "        8"
        !           393: Print double floating point.
        !           394: .br
        !           395: .ns
        !           396: .TP
        !           397: .BR b "        1"
        !           398: Print the addressed byte in octal.
        !           399: .br
        !           400: .ns
        !           401: .TP
        !           402: .BR c "        1"
        !           403: Print the addressed character.
        !           404: .br
        !           405: .ns
        !           406: .TP
        !           407: .BR C "        1"
        !           408: Print the addressed character using
        !           409: the standard escape convention where control characters
        !           410: are printed as ^X and the delete character is printed as ^?.
        !           411: .br
        !           412: .ns
        !           413: .TP
        !           414: .BI s "        n"
        !           415: Print the addressed characters until a zero character
        !           416: is reached.
        !           417: .br
        !           418: .ns
        !           419: .TP
        !           420: .BI S "        n"
        !           421: Print a string using 
        !           422: the ^\fIX\fR escape convention (see \fBC\fR above).
        !           423: .I n
        !           424: is the length of the string including its zero terminator.
        !           425: .br
        !           426: .ns
        !           427: .TP
        !           428: .BR Y "        4"
        !           429: Print 4 bytes in date format (see
        !           430: .IR ctime (3)).
        !           431: .br
        !           432: .ns
        !           433: .TP
        !           434: .BR I "        n"
        !           435: Print as TAHOE instructions.
        !           436: .I n
        !           437: is the number of bytes occupied by the instruction.
        !           438: This style of printing causes variables 1 and 2 to be set
        !           439: to the offset parts of the source and destination respectively.
        !           440: .br
        !           441: .ns
        !           442: .TP
        !           443: .BR i "        n"
        !           444: Same as `I' format, but a location labeled by a global symbol
        !           445: is considered a procedure's entry mask, and printed in `x' format.
        !           446: .br
        !           447: .ns
        !           448: .TP
        !           449: .BR a "        0"
        !           450: Print the value of
        !           451: .I dot
        !           452: in symbolic form.
        !           453: Symbols are checked to ensure that they have an appropriate
        !           454: type as indicated below.
        !           455: .LP
        !           456:        /       local or global data symbol
        !           457: .br
        !           458:        ?       local or global text symbol
        !           459: .br
        !           460:        =       local or global absolute symbol
        !           461: .TP
        !           462: .BR p "        4"
        !           463: Print the addressed value in symbolic form using
        !           464: the same rules for symbol lookup as
        !           465: .BR a .
        !           466: .br
        !           467: .ns
        !           468: .TP
        !           469: .BR t "        0"
        !           470: When preceded by an integer tabs to the next
        !           471: appropriate tab stop.
        !           472: For example,
        !           473: .B 8t 
        !           474: moves to the next 8-space tab stop.
        !           475: .br
        !           476: .ns
        !           477: .TP
        !           478: .BR r "        0"
        !           479: Print a space.
        !           480: .br
        !           481: .ns
        !           482: .TP
        !           483: .BR n "        0"
        !           484: Print a newline.
        !           485: .br
        !           486: .ns
        !           487: .tr '"
        !           488: .TP
        !           489: .BR '...' " 0"
        !           490: Print the enclosed string.
        !           491: .br
        !           492: .tr ''
        !           493: .br
        !           494: .ns
        !           495: .TP
        !           496: .B ^
        !           497: .I Dot
        !           498: is decremented by the current increment.
        !           499: Nothing is printed.
        !           500: .br
        !           501: .ns
        !           502: .TP
        !           503: +
        !           504: .I Dot
        !           505: is incremented by 1.
        !           506: Nothing is printed.
        !           507: .br
        !           508: .ns
        !           509: .TP
        !           510: \-
        !           511: .I Dot
        !           512: is decremented by 1.
        !           513: Nothing is printed.
        !           514: .RE
        !           515: .TP
        !           516: newline
        !           517: Repeat the previous command with a
        !           518: .I count
        !           519: of 1.
        !           520: .TP
        !           521: .RB [ ?/ ] l "\fI value mask\fR"
        !           522: Words starting at
        !           523: .I  dot
        !           524: are masked with
        !           525: .I mask
        !           526: and compared with
        !           527: .I value
        !           528: until
        !           529: a match is found.
        !           530: If
        !           531: .B L
        !           532: is used then the match is for 4 bytes at a time instead of 2.
        !           533: If no match is found then
        !           534: .I dot
        !           535: is unchanged; otherwise
        !           536: .I dot
        !           537: is set to the matched location.
        !           538: If
        !           539: .I mask
        !           540: is omitted then \-1 is used.
        !           541: .TP
        !           542: .RB [ ?/ ] w "\fI value ...\fR"
        !           543: Write the 2-byte
        !           544: .I value
        !           545: into the addressed
        !           546: location.
        !           547: If the command is
        !           548: .BR W ,
        !           549: write 4 bytes.
        !           550: Odd addresses are not allowed when writing to the subprocess
        !           551: address space.
        !           552: .TP
        !           553: [\fB?/\fR]\fBm\fI b1 e1 f1\fR[\fB?/\fR]
        !           554: .br
        !           555: New values for
        !           556: .RI ( b1,\ e1,\ f1 )
        !           557: are recorded.
        !           558: If less than three expressions are given then
        !           559: the remaining map parameters are left unchanged.
        !           560: If the `?' or `/' is followed by `\*(ST' then
        !           561: the second segment (\fIb2\fR\|,\|\fIe2\fR\|,\|\fIf2\fR)
        !           562: of the mapping is changed.
        !           563: If the list is terminated by `?' or `/' then the file
        !           564: (\fIobjfil\fR or
        !           565: .I corfil
        !           566: respectively) is used
        !           567: for subsequent requests.
        !           568: (So that, for example, `/m?' will cause `/' to refer to
        !           569: .IR objfil .)
        !           570: .TP
        !           571: .BI \*(GT name
        !           572: .I Dot
        !           573: is assigned to the variable or register named.
        !           574: .TP
        !           575: .B !
        !           576: A shell is called to read the
        !           577: rest of the line following `!'.
        !           578: .TP
        !           579: .RI $ modifier
        !           580: Miscellaneous commands.
        !           581: The available 
        !           582: .I modifiers 
        !           583: are:
        !           584: .RS
        !           585: .TP
        !           586: .BI < f
        !           587: Read commands from the file
        !           588: .IR f .
        !           589: If this command is executed in a file, further commands
        !           590: in the file are not seen.
        !           591: If
        !           592: .I f
        !           593: is omitted, the current input stream is terminated.
        !           594: If a
        !           595: .I count
        !           596: is given, and is zero, the command will be ignored.
        !           597: The value of the count will be placed in variable
        !           598: .I 9
        !           599: before the first command in
        !           600: .I f
        !           601: is executed.
        !           602: .br
        !           603: .ns
        !           604: .TP
        !           605: .BI << f
        !           606: Similar to
        !           607: .B <
        !           608: except it can be used in a file of commands without
        !           609: causing the file to be closed.
        !           610: Variable
        !           611: .I 9
        !           612: is saved during the execution of this command, and restored
        !           613: when it completes.
        !           614: There is a (small) finite limit to the number of
        !           615: .B <<
        !           616: files that can be open at once.
        !           617: .br
        !           618: .ns
        !           619: .TP
        !           620: .BI > f
        !           621: Append output to the file
        !           622: .IR f ,
        !           623: which is created if it does not exist.
        !           624: If
        !           625: .I f
        !           626: is omitted, output is returned to the terminal.
        !           627: .br
        !           628: .ns
        !           629: .TP
        !           630: .B ?
        !           631: Print process id, the signal which caused stoppage or termination,
        !           632: as well as the registers as \fB$r\fR.  This is the default if
        !           633: \fImodifier\fR is omitted.
        !           634: .br
        !           635: .ns
        !           636: .TP
        !           637: .B r
        !           638: Print the general registers and
        !           639: the instruction addressed by
        !           640: .BR pc .
        !           641: .br
        !           642: .ns
        !           643: .TP
        !           644: .B R
        !           645: Print the general and special registers and
        !           646: the instruction addressed by
        !           647: .BR pc .
        !           648: .br
        !           649: .ns
        !           650: .TP
        !           651: .B b
        !           652: Print all breakpoints
        !           653: and their associated counts and commands.
        !           654: .br
        !           655: .ns
        !           656: .TP
        !           657: .B c
        !           658: C stack backtrace.
        !           659: If
        !           660: .I address
        !           661: is given then it is taken as the
        !           662: address of the current frame (instead of
        !           663: .BR fp ).
        !           664: If
        !           665: .B C 
        !           666: is used then the names and (32 bit) values of all automatic
        !           667: and static variables are printed for each active function.
        !           668: If
        !           669: .I count
        !           670: is given then only the first
        !           671: .I count
        !           672: frames are printed.
        !           673: .br
        !           674: .ns
        !           675: .TP
        !           676: .B d
        !           677: Set the default radix to
        !           678: .I address
        !           679: and report the new value.
        !           680: Negative value is signed, positive - unsigned. If no
        !           681: .I address
        !           682: is given, just print the current radix (in signed decimal).
        !           683: Note that
        !           684: .I address
        !           685: is interpreted in the (old) current radix.
        !           686: Thus \*(lq10$d\*(rq never changes the default radix.
        !           687: To make decimal the default radix, use \*(lq0t10$d\*(rq.
        !           688: .br
        !           689: .ns
        !           690: .TP
        !           691: .B e
        !           692: The names and values of
        !           693: external variables are printed.
        !           694: .br
        !           695: .ns
        !           696: .TP
        !           697: .B w
        !           698: Set the page width for output to
        !           699: .I address
        !           700: (default 80).
        !           701: .br
        !           702: .ns
        !           703: .TP
        !           704: .B s
        !           705: Set the limit for symbol matches to
        !           706: .I address
        !           707: (default 255).
        !           708: .br
        !           709: .ns
        !           710: .TP
        !           711: .B o
        !           712: All integers input are regarded as octal.
        !           713: .br
        !           714: .ns
        !           715: .TP
        !           716: .B d
        !           717: Reset integer input as described in
        !           718: .SM EXPRESSIONS.
        !           719: .br
        !           720: .ns
        !           721: .TP
        !           722: .B q
        !           723: Exit from
        !           724: .IR adb .
        !           725: .br
        !           726: .ns
        !           727: .TP
        !           728: .B v
        !           729: Print all non zero variables in octal.
        !           730: .br
        !           731: .ns
        !           732: .TP
        !           733: .B m
        !           734: Print the address map.
        !           735: .RE
        !           736: .TP
        !           737: .BI : modifier
        !           738: Manage a subprocess.
        !           739: Available modifiers are:
        !           740: .RS
        !           741: .TP
        !           742: .BI b c
        !           743: Set breakpoint at
        !           744: .IR address .
        !           745: The breakpoint is executed
        !           746: .IR count \-1
        !           747: times before
        !           748: causing a stop.
        !           749: Each time the breakpoint is encountered
        !           750: the command
        !           751: .I c
        !           752: is executed.
        !           753: If this command is omitted or sets
        !           754: .I dot
        !           755: to zero
        !           756: then the breakpoint causes a stop.
        !           757: .TP
        !           758: .B d
        !           759: Delete breakpoint at
        !           760: .IR address .
        !           761: .TP
        !           762: .B r
        !           763: Run
        !           764: .I objfil
        !           765: as a subprocess.
        !           766: If
        !           767: .I address
        !           768: is given explicitly then the
        !           769: program is entered at this point; otherwise
        !           770: the program is entered at its standard entry point.
        !           771: .I count
        !           772: specifies how many breakpoints are to be
        !           773: ignored before stopping.
        !           774: Arguments to the subprocess may be supplied on the
        !           775: same line as the command.
        !           776: An argument starting with < or > causes the standard
        !           777: input or output to be established for the command.
        !           778: All signals are turned on on entry to the subprocess.
        !           779: .TP
        !           780: .BI c s
        !           781: The subprocess is continued
        !           782: with signal
        !           783: .I s
        !           784: c
        !           785: .I s,
        !           786: see
        !           787: .IR signal (2).
        !           788: If
        !           789: .I address
        !           790: is given then the subprocess
        !           791: is continued at this address.
        !           792: If no signal is specified then the signal
        !           793: that caused the subprocess to stop is sent.
        !           794: Breakpoint skipping is the same
        !           795: as for
        !           796: .BR r .
        !           797: .TP
        !           798: .BI s s
        !           799: As for
        !           800: .B c 
        !           801: except that
        !           802: the subprocess is single stepped
        !           803: .I count
        !           804: times.
        !           805: If there is no current subprocess then
        !           806: .I objfil
        !           807: is run
        !           808: as a subprocess as for
        !           809: .BR r .
        !           810: In this case no signal can be sent; the remainder of the line
        !           811: is treated as arguments to the subprocess.
        !           812: .TP
        !           813: .B k
        !           814: The current subprocess, if any, is terminated.
        !           815: .RE
        !           816: .SH VARIABLES
        !           817: .I Adb
        !           818: provides a number of variables.
        !           819: Named variables are set initially by
        !           820: .I  adb
        !           821: but are not used subsequently.
        !           822: Numbered variables are reserved for communication
        !           823: as follows.
        !           824: .TP
        !           825: 0
        !           826: The last value printed.
        !           827: .br
        !           828: .ns
        !           829: .TP
        !           830: 1
        !           831: The last offset part of an instruction source.
        !           832: .br
        !           833: .ns
        !           834: .TP
        !           835: 2
        !           836: The previous value of variable 1.
        !           837: .br
        !           838: .ns
        !           839: .TP
        !           840: 9
        !           841: The count on the last $< or $<< command.
        !           842: .PP
        !           843: On entry the following are set
        !           844: from the system header in the
        !           845: .IR corfil .
        !           846: If
        !           847: .I corfil
        !           848: does not appear to be a
        !           849: .B core 
        !           850: file then
        !           851: these values are set from
        !           852: .IR objfil .
        !           853: .TP
        !           854: b
        !           855: The base address of the data segment.
        !           856: .br
        !           857: .ns
        !           858: .TP
        !           859: d
        !           860: The data segment size.
        !           861: .br
        !           862: .ns
        !           863: .TP
        !           864: e
        !           865: The entry point.
        !           866: .br
        !           867: .ns
        !           868: .TP
        !           869: m
        !           870: The `magic' number (0407, 0410 or 0413).
        !           871: .br
        !           872: .ns
        !           873: .TP
        !           874: s
        !           875: The stack segment size.
        !           876: .br
        !           877: .ns
        !           878: .TP
        !           879: t
        !           880: The text segment size.
        !           881: .SH ADDRESSES
        !           882: The address in a file associated with
        !           883: a written address is determined by a mapping
        !           884: associated with that file.
        !           885: Each mapping is represented by two triples
        !           886: .RI ( "b1, e1, f1" )
        !           887: and
        !           888: .RI ( "b2, e2, f2" )
        !           889: and the
        !           890: .I file address
        !           891: corresponding to a written
        !           892: .I address
        !           893: is calculated as follows.
        !           894: .PP
        !           895: .if t .ti 1.5i
        !           896: .if n .ti 8
        !           897: .IR b1 \*(LE address < e1
        !           898: \*(IM
        !           899: .IR "file address" = address + f1\-b1,
        !           900: otherwise,
        !           901: .PP
        !           902: .if t .ti 1.5i
        !           903: .if n .ti 8
        !           904: .IR b2 \*(LE address < e2
        !           905: \*(IM
        !           906: .IR "file address" = address + f2\-b2,
        !           907: .PP
        !           908: otherwise, the requested
        !           909: .I address
        !           910: is not legal.
        !           911: In some cases (e.g. for programs with separated I and D
        !           912: space) the two segments for a file may overlap.
        !           913: If a
        !           914: .B ? 
        !           915: or
        !           916: .B / 
        !           917: is followed by an
        !           918: .B \*(ST 
        !           919: then only the second
        !           920: triple is used.
        !           921: .PP
        !           922: The initial setting of both mappings is suitable for
        !           923: normal
        !           924: .B a.out 
        !           925: and
        !           926: .B core 
        !           927: files.
        !           928: If either file is not of the kind expected then, for that file,
        !           929: .I b1
        !           930: is set to 0,
        !           931: .I e1
        !           932: is set to
        !           933: the maximum file size
        !           934: and
        !           935: .I f1
        !           936: is set to 0; in this way the whole
        !           937: file can be examined with no address translation.
        !           938: .PP
        !           939: So that
        !           940: .I adb
        !           941: may be used on large files
        !           942: all appropriate values are kept as unsigned 32 bit integers.
        !           943: .SH FILES
        !           944: a.out
        !           945: .br
        !           946: core
        !           947: .SH SEE\ ALSO
        !           948: sdb(1),
        !           949: ptrace(2),
        !           950: a.out(5),
        !           951: core(5)
        !           952: .SH DIAGNOSTICS
        !           953: `Adb' when there is no current command or format.
        !           954: Comments about inaccessible files, syntax errors,
        !           955: abnormal termination of commands, etc.
        !           956: Exit status is 0, unless last command failed or
        !           957: returned nonzero status.
        !           958: .SH BUGS
        !           959: Local variable addresses and names are recorded in the
        !           960: .I a.out
        !           961: file in a format known only to
        !           962: .IR sdb (1).
        !           963: .PP
        !           964: Use of # for the unary logical negation operator is
        !           965: peculiar.
        !           966: .PP
        !           967: There doesn't seem to be any way to clear all breakpoints.
        !           968: .PP
        !           969: The $<<f function doesn't work (and never did).

unix.superglobalmegacorp.com

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