Annotation of researchv8dc/cmd/adb/oadb.1, revision 1.1.1.1

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

unix.superglobalmegacorp.com

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