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