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