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