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