xref: /csrg-svn/old/adb/common_source/adb.1 (revision 44280)
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.8 (Berkeley) 06/26/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.Li $<
73or
74.Li $<<
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.Li $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.Li $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.Li $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 ^X and the delete character is printed as ^?.
507.Dp Cx Ic s
508.Cx \&\ \ \&
509.Va n
510.Cx
511Print the addressed characters until a zero character is reached.
512.Dp Cx Ic S
513.Cx \&\ \ \&
514.Va n
515.Cx
516Print a string using the ^
517.Ar X
518escape convention (see
519.Ar C
520above).
521.Ar n
522is the length of the string including its zero terminator.
523.Dp Cx Ic Y
524.Cx \&\ \ \&
525.Va 4
526.Cx
527Print 4 bytes in date format (see
528.Xr ctime 3 ) .
529.Dp Cx Ic i
530.Cx \&\ \ \&
531.Va n
532.Cx
533Print as machine instructions.
534.Ar n
535is the number of bytes occupied by the instruction.
536This style of printing causes the numeric variables 1, 2, ... to be set
537according to the offset parts of the arguments, if any, of the instruction
538(up to 6 on the VAX).
539.Dp Cx Ic a
540.Cx \&\ \ \&
541.Va 0
542.Cx
543Print the value of
544.Ad dot
545in symbolic form.
546Symbols are checked to ensure that they have an appropriate
547type as indicated below.
548.Dw AAAA
549.Dp Va /
550local or global data symbol
551.Dp Va \&?
552.Cx
553local or global text symbol
554.Dp Va \&=
555.Cx
556local or global absolute symbol
557.Dp
558.Dp Cx Ic p
559.Cx \&\ \ \&
560.Va 4
561.Cx
562Print the addressed value in symbolic form using
563the same rules for symbol lookup as
564.Ic a .
565.Dp Cx Ic t
566.Cx \&\ \ \&
567.Va 0
568.Cx
569When preceded by an integer tabs to the next appropriate tab stop.
570For example,
571.Li 8t
572moves to the next 8-space tab stop.
573.Dp Cx Ic r
574.Cx \&\ \ \&
575.Va 0
576.Cx
577Print a space.
578.Dp Cx Ic n
579.Cx \&\ \ \&
580.Va 0
581.Cx
582Print a newline.
583.Dp Ic \*(Rq...\*(Lq
584.Va 0
585\&\ \ \&
586Print the enclosed string.
587.Dp ^
588.Ad Dot
589is decremented by the current increment.  Nothing is printed.
590.Dp +
591.Ad Dot
592is incremented by 1.  Nothing is printed.
593.Dp \-
594.Ad Dot
595is decremented by 1.  Nothing is printed.
596.Dp newline
597Repeat the previous command with a
598.Va count
599of 1.
600.Dp
601.Pp
602.Tw $modifier
603.Tp Cx Op Ic ?/
604.Ic l\ \&
605.Va value mask
606.Cx
607Words starting at
608.Ad dot
609are masked with
610.Va mask
611and
612compared with
613.Va value
614until a match is found.
615If
616.Cm L
617is used then the match is for 4 bytes at a time instead of 2.
618If no match is found then
619.Ad dot
620is unchanged; otherwise
621.Ad dot
622is set to the matched location.
623If
624.Va mask
625is omitted then all bits are compared.
626.Tp Cx Op Ic ?/
627.Ic w\ \&
628.Va value ...
629.Cx
630Write the 2-byte
631.Va value
632into the addressed location.  If the command is
633.Ic W ,
634write 4 bytes.
635Odd addresses
636.Em are
637allowed
638when writing to the subprocess address space.
639.Tp Cx Op Ic ?/
640.Ic m\ \&
641.Ad b1 e1 f1
642.Op Ic ?/
643.Cx
644New values for
645.Ad  ( b1 , e1 , f1 )
646are recorded.  If less than three expressions are given then
647the remaining map parameters are left unchanged.
648If the
649.Ic ?
650or
651.Ic /
652is followed by
653.Li *
654then
655the second segment (
656.Ad  ( b2 , e2 , f2 )
657of the mapping is changed.
658If the list is terminated by
659.Ic ?
660or
661.Ic /
662then the file
663.Ar ( objfil
664or
665.Ar corfil
666respectively) is used for subsequent requests.
667For example,
668.Li /m?
669will cause
670.Ic /
671to refer to
672.Ar objfil .
673.Tp Cx Ic >
674.Va name
675.Cx
676.Ad Dot
677is assigned to the variable or register named.
678.Tp Ic \&!
679A shell
680.Cx \&(
681.Pa /bin/sh )
682.Cx
683is called to read the rest of the line following
684.Ic \&! .
685.Tp Cx Cm $
686.Va modifier
687.Cx
688Miscellaneous commands.  The available
689.Va modifiers
690are:
691.Tw fil
692.Tp Cx Cm <
693.Va file
694.Cx
695Read commands from
696.Va file
697If this command is executed in a file, further commands
698in the file are not seen.
699If
700.Va file
701is omitted, the current input stream is terminated.  If a
702.Va count
703is given, and is zero, the command will be ignored.
704The value of the count will be placed in variable
705.Va 9
706before the first command in
707.Va file
708is executed.
709.Tp Cx Cm <<
710.Va file
711.Cx
712Similar to
713.Cm <
714except it can be used in a file of commands without
715causing the file to be closed.  Variable
716.Va 9
717is saved during the execution of this command, and restored when it completes.
718There is a (small) finite limit to the number of
719.Cm <<
720files that can be open at once.
721.Tp Cx Cm >
722.Va file
723.Cx
724Append output to the file
725.Va file ,
726which is created if it does not exist.  If
727.Va file
728is omitted, output is returned to the terminal.
729.Tp Cx Cm ?
730.Va file
731.Cx
732Print process id, the signal which caused stoppage or termination,
733as well as the registers as
734.Ic $r .
735This is the default if
736.Va modifier
737is omitted.
738.Tp Cm r
739Print the general registers and the instruction addressed by
740.Nm pc .
741.Ad Dot
742is set to
743.Nm pc .
744.Tp Cm b
745Print all breakpoints and their associated counts and commands.
746.Tp Cm c
747C stack backtrace.  If
748.Ad address
749is given then it is taken as the address of the current frame
750instead of the contents of the frame\-pointer register.  If
751.Cm C
752is used then the names and (32 bit) values of all automatic
753and static variables are printed for each active function
754(this is partially broken; the names are not now available).  If
755.Va count
756is given then only the first
757.Va count
758frames are printed.
759.Tp Cm d
760Set the default radix to
761.Ad address
762and report the new value.  If no
763.Ad address
764is given, the default radix is not changed.
765The new radix must be between -16 (decimal) and 16 (decimal)
766and must not be 0, 1, or -1.
767A negative radix implies that numbers printed in that radix
768will be treated as signed; otherwise they are treated as unsigned.
769Note that
770.Ad address
771is interpreted in the (old) current radix.
772Thus \*(lq10$d\*(rq simply changes the default radix to unsigned.
773To make signed decimal the default radix, use \*(lq-0t10$d\*(rq.
774.Tp Cm e
775The names and values of external variables are printed.
776.Tp Cm w
777Set the page width for output to
778.Ad address
779(default 80).
780.Tp Cm s
781Set the limit for symbol matches to
782.Ad address
783(default 1024).
784.Tp Cm q
785Exit from
786.Nm adb .
787.Tp Cm v
788Print all non zero variables in octal.
789.Tp Cm m
790Print the address map.
791.Tp Cm p
792.Em ( Kernel debugging )
793Change the current kernel memory mapping to map the designated
794.Sy user structure
795to the address given by the symbol
796.Sy _u .
797The
798.Ad address
799argument is the address of the user's user page table entries.
800.Tp
801.Tp Cx Cm :
802.Va modifier
803.Cx
804Manage a subprocess.  Available modifiers are:
805.Tw Ds
806.Tp Cx Cm b
807.Va c
808.Cx
809Set breakpoint at
810.Ad address .
811The breakpoint is executed
812.Va count\-1
813times before causing a stop,
814after which it stops unconditionally.
815Each time the breakpoint is encountered the command
816.Va c
817is executed.  If this command is omitted or sets
818.Ad dot
819to zero, the breakpoint causes a stop immediately,
820regardless of any remaining count.
821.Tp Cm d
822Delete breakpoint at
823.Ad address .
824.Tp Cm D
825Delete all breakpoints.
826.Tp Cm r
827Run
828.Ar objfil
829as a subprocess.  If
830.Ad address
831is given explicitly then the program is entered at this point; otherwise
832the program is entered at its standard entry point.
833.Va count
834specifies how many breakpoints are to be ignored before stopping.
835Arguments to the subprocess may be supplied on the same line as the command.
836An argument starting with < or > causes the standard
837input or output to be established for the command.
838.Tp Cx Cm c
839.Va s
840.Cx
841The subprocess is continued with signal
842.Va s
843see
844.Xr sigvec 2 .
845If
846.Ad address
847is given then the subprocess is continued at this address.
848If no signal is specified then the signal
849that caused the subprocess to stop is sent.
850Breakpoint skipping is the same as for
851.Cm r .
852.Tp Cx Cm s
853.Va s
854.Cx
855As for
856.Cm c
857except that the subprocess is single stepped
858.Va count
859times.  If there is no current subprocess then
860.Ar objfil
861is run as a subprocess as for
862.Cm r .
863In this case no signal can be sent; the remainder of the line
864is treated as arguments to the subprocess.
865.Tp Cm k
866The current subprocess, if any, is terminated.
867.Tp
868.Tp
869.Sh VARIABLES
870.Nm Adb
871provides a number of variables.
872Named variables are set initially by
873.Nm adb
874but are not used subsequently.
875Numbered variables are reserved for communication as follows.
876.Dw Ds
877.Di L
878.Dp \&0
879The last value printed.
880.Dp \&1
881The last offset part of an instruction source.
882This continues up through at most 6 on the VAX.
883For a three-operand instruction, variable 2 is the second source offset
884and variable 3 the destination offset part.
885.Dp \&9
886The count on the last $< or $<< command.
887.Dp
888On entry the following are set from the system header in the
889.Ar corfil .
890If
891.Ar corfil
892does not appear to be a
893.Pa core
894file then these values are set from
895.Ar objfil .
896.Dw Ds
897.Di L
898.Dp b
899The base address of the data segment.
900.Dp d
901The data segment size.
902.Dp e
903The entry point.
904.Dp m
905The `magic' number (0407, 0410 or 0413).
906.Dp s
907The stack segment size.
908.Dp t
909The text segment size.
910.Sh ADDRESSES
911The address in a file associated with
912a written address is determined by a mapping associated with that file.
913Each mapping is represented by two triples
914.Ad ( b1 , e1 , f1 )
915and
916.Ad ( b2 , e2 , f2 )
917and the
918.Ad file
919.Ad address
920corresponding to a written
921.Ad address
922is calculated as follows.
923.Pp
924.Ds I
925.Cx Ad b1
926.Sy \&\*(<=
927.Ad address
928.Sy <
929.Ad e1
930.Sy \ \&\(->\ \&
931.Ad file address
932.Sy =
933.Ad address
934.Sy +
935.Ad f1
936.Sy \-
937.Ad b1 ,
938.Cx \ \&
939.Cx otherwise,
940.Cx
941.De
942.Pp
943.Ds I
944.Cx Ad b2
945.Sy \&\*(<=
946.Ad address
947.Sy <
948.Ad e2
949.Sy \ \&\(->\ \&
950.Ad file address
951.Sy =
952.Ad address
953.Sy +
954.Ad f2
955.Sy \-
956.Ad b2 ,
957.Cx
958.De
959.Pp
960otherwise, the requested
961.Ar address
962is not legal.  In some cases (e.g. for programs with separated I and D
963space) the two segments for a file may overlap.  If a
964.Ic ?
965or
966.Ic /
967is followed by an
968.Ic *
969then only the second triple is used.
970.Pp
971The initial setting of both mappings is suitable for normal
972.Pa a.out
973and
974.Pa core
975files.  If either file is not of the kind expected then, for that file,
976.Ad b1
977is set to
978.Li 0 ,
979.Ad e1
980is set to the maximum file size and
981.Ad f1
982is set to 0; in this way the whole
983file can be examined with no address translation.
984.Pp
985.Sh FILES
986.Dw a.out
987.Dp Pa a.out
988.Dp Pa core
989.Dp
990.Sh SEE ALSO
991.Xr cc 1 ,
992.Xr dbx 1 ,
993.Xr ptrace 2 ,
994.Xr a.out 5 ,
995.Xr core 5
996.Sh HISTORY
997.Nm Adb
998was first released with Version 7 AT&T UNIX.  The version
999of
1000.Nm adb
1001this man page describes
1002is descended from the orignial.
1003.Sh DIAGNOSTICS
1004.Li `adb'
1005when there is no current command or format.
1006Comments about inaccessible files, syntax errors,
1007abnormal termination of commands, etc.
1008Exit status is 0, unless last command failed or returned nonzero status.
1009.Sh BUGS
1010Since no shell is invoked to interpret the arguments of the
1011.Ic :r
1012command, the customary wild-card and variable expansions cannot occur.
1013