Annotation of 43BSDTahoe/man/man1/adb.1, revision 1.1.1.1

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

unix.superglobalmegacorp.com

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