This is a partial log of a session on TRON/VETTE UNIX using Verdix Ada < stuff > is comments I added to the log file. Do not type these. < I reached a server prompt Local > and typed C TRON An alternate is to $ SET HOST TRON. TRON is one of the VMS to UNIX gateways in our network. Get an account on TRON via sending mail to TRON::ROOT. I then logged onto TRON and typed RSH VETTE ( RSH TBIRD alternate ) Then after doing some other cleanup, I set up and used Verdix VADS Ada > squire 66 > cat .cshrc set path=( ~/bin /usr/ucb /bin /usr/{bin,local,new,hosts} /usr/lib/cmplrs/ada2.05/bin . ) alias t 'cat' alias dir 'ls -lasibF' squire 67 > dir 65682 1 drwxr-xr-x 3 squire users 512 Aug 23 18:05 ./ 26641 1 drwxr-xr-x 3 root other 512 Aug 23 18:02 ../ 65684 2 -rwxr-xr-x 1 squire users 896 Sep 7 15:31 .cshrc* 65686 1 -rw-r--r-- 1 squire users 13 Aug 3 1988 .forward 65685 1 -rw-r--r-- 1 squire users 88 Sep 14 02:23 .history 65683 1 -rwxr-xr-x 1 squire users 316 Jul 15 1988 .login* 65801 6 -rw-r--r-- 1 squire users 2842 Nov 28 1988 heapsort.c 65802 1 -rw-r--r-- 1 squire users 74 Nov 28 1988 heapsort.h 65836 1 -rw-r--r-- 1 squire users 81 Aug 23 18:05 hello.a 67677 1 drwxr-xr-x 2 squire users 512 Sep 14 02:21 piwg/ squire 68 > cd piwg squire 69 > dir 67677 1 drwxr-xr-x 2 squire users 512 Sep 14 02:21 ./ 65682 1 drwxr-xr-x 3 squire users 512 Aug 23 18:05 ../ 67657 1 -rw-r--r-- 1 squire users 91 Sep 14 02:20 hello.a squire 70 > a.mklib -i < ONE TIME per sub directory, initialize Ada libr > 3 versions of VADS are available on this machine: Target Name Version VADS Location 1 R2000_TARGET 5.5 /usr/lib/cmplrs/asapp2.05 2 R2000_TARGET 5.5 /usr/lib/cmplrs/asapp2.05 3 SELF_TARGET 5.5 /usr/lib/cmplrs/ada2.05 Selection (q to quit): 3 < I typed 3 > squire 71 > dir < see new files created. do not delete! > 67677 1 drwxr-xr-x 6 squire users 512 Sep 26 11:50 ./ 65682 1 drwxr-xr-x 3 squire users 512 Aug 23 18:05 ../ 67632 1 drwxr-xr-x 2 squire users 512 Sep 26 11:50 .imports/ 67656 1 drwxr-xr-x 2 squire users 512 Sep 26 11:50 .lines/ 67655 1 drwxr-xr-x 2 squire users 512 Sep 26 11:50 .nets/ 69798 1 drwxr-xr-x 2 squire users 512 Sep 26 11:50 .objects/ 67621 0 -rw-r--r-- 1 squire users 0 Sep 26 11:50 GVAS_table 67622 1 -rw-r--r-- 1 squire users 89 Sep 26 11:50 ada.lib 67630 1 -rw-r--r-- 1 squire users 19 Sep 26 11:50 gnrx.lib 67657 1 -rw-r--r-- 1 squire users 91 Sep 14 02:20 hello.a squire 84 > ada hello.a < do a compilation > squire 85 > dir 67677 1 drwxr-xr-x 6 squire users 512 Sep 26 11:52 ./ 65682 1 drwxr-xr-x 3 squire users 512 Aug 23 18:05 ../ 67632 1 drwxr-xr-x 2 squire users 512 Sep 26 11:52 .imports/ 67656 1 drwxr-xr-x 2 squire users 512 Sep 26 11:50 .lines/ 67655 1 drwxr-xr-x 2 squire users 512 Sep 26 11:52 .nets/ 69798 1 drwxr-xr-x 2 squire users 512 Sep 26 11:52 .objects/ 67621 1 -rw-r--r-- 1 squire users 72 Sep 26 11:52 GVAS_table 67816 1 -rw-r--r-- 1 squire users 131 Sep 26 11:52 ada.lib 67630 1 -rw-r--r-- 1 squire users 19 Sep 26 11:50 gnrx.lib 67657 1 -rw-r--r-- 1 squire users 91 Sep 14 02:20 hello.a squire 86 > cd .imports squire 87 > dir 67632 1 drwxr-xr-x 2 squire users 512 Sep 26 11:52 ./ 67677 1 drwxr-xr-x 6 squire users 512 Sep 26 11:52 ../ 67659 2 -rw-r--r-- 1 squire users 1024 Sep 26 11:52 STANDARD 67797 2 -rw-r--r-- 1 squire users 1024 Sep 26 11:52 a_strings 67814 2 -rw-r--r-- 1 squire users 1024 Sep 26 11:52 file_support 67662 2 -rw-r--r-- 1 squire users 1024 Sep 26 11:52 io_exceptions 67813 2 -rw-r--r-- 1 squire users 1024 Sep 26 11:52 os_files 67664 2 -rw-r--r-- 1 squire users 1024 Sep 26 11:52 system 67812 2 -rw-r--r-- 1 squire users 1024 Sep 26 11:52 text_io 67811 2 -rw-r--r-- 1 squire users 1024 Sep 26 11:52 unchecked_conversion squire 88 > cd .. squire 92 > cd .nets squire 93 > dir 67655 1 drwxr-xr-x 2 squire users 512 Sep 26 11:52 ./ 67677 1 drwxr-xr-x 6 squire users 512 Sep 26 11:52 ../ 67815 4 -rw-r--r-- 1 squire users 1644 Sep 26 11:52 hello01 squire 94 > cd .. squire 95 > a.ld hello < link to make an executable > squire 96 > dir 67677 1 drwxr-xr-x 6 squire users 512 Sep 26 11:54 ./ 65682 1 drwxr-xr-x 3 squire users 512 Aug 23 18:05 ../ 67632 1 drwxr-xr-x 2 squire users 512 Sep 26 11:52 .imports/ 67656 1 drwxr-xr-x 2 squire users 512 Sep 26 11:50 .lines/ 67655 1 drwxr-xr-x 2 squire users 512 Sep 26 11:52 .nets/ 69798 1 drwxr-xr-x 2 squire users 512 Sep 26 11:53 .objects/ 67621 1 -rw-r--r-- 1 squire users 72 Sep 26 11:53 GVAS_table 67622 552 -rwxr-xr-x 1 squire users 279176 Sep 26 11:54 a.out* 67816 1 -rw-r--r-- 1 squire users 131 Sep 26 11:52 ada.lib 67630 1 -rw-r--r-- 1 squire users 19 Sep 26 11:50 gnrx.lib 67657 1 -rw-r--r-- 1 squire users 91 Sep 14 02:20 hello.a squire 97 > a.out < execute the program just linked, standard a.out > hello. squire 98 > cat hello.a < look at source code, compiled,linked above> with text_io; use text_io; procedure hello is begin put_line("hello."); end hello; squire 99 > mv a.out hello < rename a.out to just hello > squire 100 > dir 67677 1 drwxr-xr-x 6 squire users 512 Sep 26 11:55 ./ 65682 1 drwxr-xr-x 3 squire users 512 Aug 23 18:05 ../ 67632 1 drwxr-xr-x 2 squire users 512 Sep 26 11:52 .imports/ 67656 1 drwxr-xr-x 2 squire users 512 Sep 26 11:50 .lines/ 67655 1 drwxr-xr-x 2 squire users 512 Sep 26 11:52 .nets/ 69798 1 drwxr-xr-x 2 squire users 512 Sep 26 11:53 .objects/ 67621 1 -rw-r--r-- 1 squire users 72 Sep 26 11:53 GVAS_table 67816 1 -rw-r--r-- 1 squire users 131 Sep 26 11:52 ada.lib 67630 1 -rw-r--r-- 1 squire users 19 Sep 26 11:50 gnrx.lib 67622 552 -rwxr-xr-x 1 squire users 279176 Sep 26 11:54 hello* 67657 1 -rw-r--r-- 1 squire users 91 Sep 14 02:20 hello.a squire 101 > man ada < look at the manual pages > ada - Ada compiler ada [options] [ada_source.a]... [linker_options] [object_file.o]... The command ada executes the Ada compiler and compiles the named Ada source file, ending with the .a suffix. The file must reside in a VADS library directory. The ada.lib file in this directory is modified after each Ada unit is compiled. The object for each compiled Ada unit is left in a file with with the same name as that of the source with .01, .02, etc. substituted for .a. The -o option can be used to produce an executable with a name other than a.out, the default. For cross compilers, the default name is a.vox. By default, ada produces only object and net files. If the -M option is used, the compiler automatically invokes a.ld and builds a complete program wih the named library unit as the main program. Non-Ada object files (.o files produced by a compiler for another language) may be given as arguments to ada. These files will be passed on to the linker and will be linked with the specified Ada object files. Command line options may be specified in any order, but the order of compilation and the order of the files to be passed to the linker can be significant. Several VADS compilers may be simultaneously available on a single system. Because the ada command in any VADS_location/bin on a system will execute the correct compiler components based upon visible library directives, the option -sh is provided to print the name of the components actually executed. Program listings with a disassembly of machine instructions are generated by a.db or a.das. -a file_name (archive) treat file_name as an ar file. Since archive files end with .a, -a is used to distinguish archive files from Ada source files. -d (dependencies) analyze for dependencies only. Do not do semantic analysis or code generation. Update the library, marking any defined units as uncompiled. The -d option is used by a.make to establish dependencies among new files. -e (error) process compilation error messages using a.error and direct it to stdout.-only the source lines containing errors are listed. Only one -e or -E option should be used. -E -E file -E directory (error output) without a file or directory argument, ada processes error messages using a.error and directs the output to stdout; the raw error messages are left in ada_source.err. If a file pathname is given, the raw error messages are placed in that file. If a directory argument is supplied, the raw error output is placed in dir/source.err. Only one -e or -E option should be used. -el (error listing) intersperse error messages among source lines and direct to stdout. -El -El file -El directory (error listing) same as the -E option, except that source listing with errors is produced. -ev (error vi) process syntax error messages using a.error, embed them in the source file, and call the environment editor ERROR_EDITOR. (If ERROR_EDITOR is defined, the environment variable ERROR_PATTERN should also be defined. ERROR_PATTERN is an editor search command that locates the first occurrence of `###' in the error file.) If no editor is specifed, call vi. -g0 Have the compiler produce no symbol table information for symbolic debugging. -g1 Have the compiler produce additional symbol table information for accurate but limited symbolic debugging of partially optimized code. -g " or " -g2 Have the compiler produce additional symbol table information for full symbolic debugging and not do optimizations that limit full symbolic debugging. -g2 is the default. -g3 Have the compiler produce additional symbol table information for full symbolic debugging for fully optimized code. This option makes the debugger inaccurate. -lfile_abbreviation (link) Link this library file. (Do not space between the -l and the file abbreviation.) See also Operating system documentation, ld(1). -M unit_name (main) produce an executable program using the named unit as the main program. The unit must be either a parameterless procedure or a parameterless function returning an integer. The executable program will be left in the file a.out unless overridden with the -o option. -M ada_source.a (main) like -M unit_name, except that the unit name is assumed to be the root name of the .a file (for foo.a the unit is foo). Only one .a file may be preceded by -M. -o executable_file (output) this option is to be used in conjunction with the -M option. executable_file is the name of the executable rather than the default a.out. -O[0-9] (optimize) invoke the code optimizer (no space before the digit). An optional digit limits the number of passes by the optimizer; without the -O option, one pass is made; -O0 prevents optimization; -O with no digit optimizes as far as possible. -R VADS_library (recompile instantiation) force analysis of all generic instantiations, causing reinstantiation of any that are out of date. -S (suppress) apply pragma SUPPRESS to the entire compilation for all suppressible checks. -T (timing) print timing information for the compilation. -v (verbose) print compiler version number, date and time of compilation, name of file compiled, command input line, total compilation time, and error summary line. -w (warnings) suppress warning diagnostics. -W c arg1[,arg2...] Pass the argument[s] argi to a compiler pass, where c is one of of the characters in the next table that designates the pass. include h (see note below) backend D driver ucgen G ujoin j uld u usplit s umerge m uopt o ugen c as1 b [VADS Reference] a.db, a.error, a.ld, a.mklib, a.das and Operating system documentation, ld(1) The diagnostics produced by the VADS compiler are intended to be self-explanatory. Most refer to the RM. Each RM reference includes a section number and optionally, a paragraph number enclosed in parentheses. squire 102 > man a.ld a.ld - prelinker a.ld [options] unit_name [ld_options] a.ld collects the object files needed to make unit_name a main program and calls the UNIX linker ld(1) to link together all Ada and other language objects required to produce an executable image in a.out. unit_name is the main program and must be a non-generic subprogram. If unit_name is a function, it must return a value of the type STANDARD.INTEGER. This integer result will be passed back to the UNIX shell as the status code of the execution. The utility uses the net files produced by the Ada compiler to check dependency information. a.ld produces an exception mapping table and a unit elaboration table and passes this information to the linker. a.ld reads instructions for generating executables from the ada.lib file in the VADS libraries on the search list. Besides information generated by the compiler, these directives also include WITHn directives that allow the automatic linking of object modules compiled from other languages or Ada object modules not named in context clauses in the Ada source. Any number of WITH directives may be placed into a library, but they must be numbered contiguously beginning at WITH1. The directives are recorded in the library's ada.lib file and have the following form. WITH1:LINK:object_file: WITH2:LINK:archive_file: WITH directives may placed in the local Ada libraries or in any VADS library on the search list. A WITH directive in a local VADS library or earlier on the library search list will hide the same numbered WITH directive in a library later in the library search list. Use the tool a.info to change or report library directives in the current library. All arguments after unit_name are passed on to the linker. These may be options for it, archive libraries, library abbreviations, or object files. VADS_location/bin/a.ld is a wrapper program that executes the correct executable based upon directives visible in the ada.lib file. This permits multiple VADS compilers to exist on the same host. The -sh option prints the name of the actual executable file. -E unit_name (elaborate) Elaborate unit_name as early in the elaboration order as possible. -F (files) Print a list of dependent files in order and suppress linking. -o executable_file (output) Use the specified file name the name of the output rather than the default, a.out. -sh (show) Display the name of the tool executable but do not execute it. -U (units) Print a list of dependent units in order and suppress linking. -v (verbose) Print the linker command before executing it. -V (verify) Print the linker command but suppress execution. VADS_location/standard/* startup and standard library routines Ada object files a.out default output file Operating system documentation,ld(1) Self-explanatory diagnostics are produced for missing files, etc. Occasional additional messages are produced by the linker. squire 103 > squire 103 > man a.mklib a.mklib - make library directory a.mklib [-F -f -i -v] [-t target] [new_VADS_library [parent_VADS_libra ry]] a.mklib creates and initializes a new VADS library directory, creating three files (GVAS_table, ada.lib, and gnrx.lib) and four directories (.lines, .imports, .nets, and .objects). It constructs library pointers in ada.lib to all libraries available from the parent library and to the parent library itself. As a result, Ada units in the new library can reference all Ada units defined by the parent library and all units that were accessible from the parent library. If parent_VADS_library is unspecified, the default libraries are verdixlib and standard. The tool a.vadsrc may also be used to create a local configuration file called .vadsrc either in the current directory, or in the user's $HOME directory, so that future libraries created in a directory below the current directory or $HOME directory will reference a particular VADS version. If new_VADS_library is unspecified, the current working directory is initialized. The -f option will force initialization of the VADS library structure, overwriting any existing components and deleting any existing lock files. Without the -F option, a.mklib cannot create libraries named standard, verdixlib, or publiclib. A list of available targets can be obtained with the -i option or with the tool a.vadsrc. -f (force) Create VADS library structure even if some components are already present. -F (force name) Allow creation of VADS library with a restricted name. -i (interactive) Display all versions of VADS installed on the system and prompt for selection of VADS version unless modified with the -t option. -t target (target) Create a library for a specific target machine -v (verbose) Display the library search list and target directives. If the user is positioned at the directory /usr/babbage/code and the VADS library olddir exists below it in the UNIX hierarchy, the command a.mklib newdir olddir creates the library directory /usr/babbage/code/newdir and provides access to the Ada compilation units previously compiled in the olddir library directory. Any units available to olddir from other libraries are now available from newdir as well. .vadsrc local default configuration file /usr/lib/VADS VADS version reference file An error is reported and no action is taken (without the -f option) if new VADS library contains any VADS components or lock files or if the name specified exists but is not a directory. [VADS Reference] , a.cleanlib, a.rmlib, a.vadsrc. squire 104 > a.ld HELLO < upper case OK here, not below as shown > squire 105 > ada HELLO ada: file name HELLO does not end with .o or .a squire 106 > ada HELLO.A ada: file name HELLO.A does not end with .o or .a squire 107 > ada HELLO.a /usr/users/wec/squire/piwg/HELLO.a: No such file or directory < ... and in another session ... > squire 30 > man a.make a.make - recompile source files in dependency order a.make [options] [unit_name]... [ld_options] [-f ada_source.a ...] a.make [options] [path/unit_name]... [ld_options] [-f ada_source.a ... ] This utility determines which files must be recompiled in order to produce a current executable file with unit_name as the main unit. It also calls a.ld to create the appropriate executable, if and only if unit_name is a procedure or an integer function; otherwise, it just ensures that the named unit is up-to-date, recompiling any dependencies if necessary. The utility uses DIANA net files to determine the correct order of compilation and elaboration. a.make will have no knowledge of any source file ( foo.a) until that file has been compiled in a way that changes the program library. Unless the -f option is used, this requires that foo.a be compiled `by hand' at least once. Unless the -U or -D option is given, the file must compile successfully or else the program library will remain unchanged. A single compilation is sufficient (unless syntax errors are present) if the -U option is used to force changes to the program library. In any case, syntax errors must be corrected before the file will be `seen' by a.make. VADS_location/bin/a.make is a wrapper program that executes the correct executable based upon directives visible in the ada.lib file. This permits multiple VADS compilers to exist on the same host. The -sh option prints the name of the actual executable file. Supplied names and unknown options are passed to a.ld. -A VADS_library [-A VADS_library] ... (add) Bring the listed libraries up to date if necessary. -All (all) Bring all libraries on the library search path up to date. -C "compiler" (compiler) Use the string compiler in recompiling the required units. This option is normally used to provide specific options to the compiler. For example, to call the compiler with the optimizing option and invoke the vi(1) editor on compilation errors, use a command of the following type. a.make -C "ada -ev" [other commands] -D (dependencies) List the file-to-file dependencies. -f ada_source.a ... (files) Treat remaining non-option arguments as file names in the current VADS library to compile. All units in these files will be brought up to date; -f may be used with one of the other options to print actions or dependencies without executing them, but must be the last option given. -I ada_source.a (if) List actions that would be taken if ada_source.a were changed. -L "linker" (linker) Use the string linker in linking the required units. This option can be used to provide unusual options to a.ld when using a.make. -O[0-9] (optimize) Invoke the code optimizer (no space before the digit). An optional digit limits the number of optimization passes; without the -O option, one pass is made; -O0 prevents optimization; O with no digit optimizes as far as possible. -S (suppress) Apply pragma SUPPRESS to the entire compilation. -sh (show) Display the name of the tool executable but do not execute it. -U (units) List the list of dependent units in order, but do not link. -v (verbose) List the recompilation commands as they are executed. -V (verify) List the recompilation commands that would be executed, but do not execute them. squire 31 > man a.db a.db - source level debugger a.db [options] [executable_file] a.db is a symbolic debugger for Ada programs and for C programs compiled with the -go option for those using 4.2 BSD UNIX or the -g option on System V UNIX. Detailed descriptions of interactive a.db commands and runtime configuration file options are provided in the VADS Debugger Reference, which is also available on-line using a.help or the debugger's internal help command. VADS_location/bin/a.db is a wrapper program that executes the correct executable based upon directives visible in the ada.lib file. This permits multiple VADS compilers to exist on the same host. The -sh option prints the name of the actual executable file. -i file_name (input) read input from the specified file -p VADS_library (program) read program compilation information from the specified VADS library directory (rather than the current directory) -sh (show) display the name of the tool executable but do not execute it. -v (visual) invoke the screen-mode debugger directly. See also VADS Debugger Reference for a list of all debugger commands. squire 35 > a.db hello Debugging: /usr/users/wec/squire/piwg/hello VADS_library: /usr/users/wec/squire/piwg library search list: /usr/users/wec/squire/piwg /usr/lib/cmplrs/ada2.05/verdixlib /usr/lib/cmplrs/ada2.05/standard >g hello hello. process has exited with status 0 reloading /usr/users/wec/squire/piwg/hello >b >a < try all single letters > hello [2] stopped at "/usr/users/wec/squire/piwg/hello.a":3 in hello 3 procedure hello is >c ^__________syntax error >d ^__________syntax error >e "/usr/users/wec/squire/piwg/hello.a":hello:3 >f ^__________syntax error >g hello. process has exited with status 0 reloading /usr/users/wec/squire/piwg/hello >h ^__________syntax error >i ^__________syntax error >j ^__________syntax error >k ^__________syntax error >l 3*=procedure hello is 4 begin 5 put_line("hello."); 6 end hello; 7 8 9 10 11 12< >m ^__________syntax error >n => no previous search pattern >o ^__________syntax error >p ^__________syntax error >q ^__________syntax error >r hello [2] stopped at "/usr/users/wec/squire/piwg/hello.a":3 in hello 3 procedure hello is >s stopped at "/usr/users/wec/squire/piwg/hello.a":5 in hello 5 put_line("hello."); >t ^__________syntax error >u ^__________syntax error >v ^__________syntax error >w 1 with text_io; 2 use text_io; 3= procedure hello is 4 begin 5*< put_line("hello."); 6 end hello; 7 8 9 >x ^__________syntax error >y ^__________syntax error >z ^__________syntax error >help < now try HELP! > a.db VADS Reference Manual a.db Help is available for the following debugger commands and concepts: cu help reg a current frame home position s address current position invocation screen mode ai d l search assignment db_iface lb select b display li set bd e line numbers si bi edit load stop breakpoints examine lt sync bx exit overloading task cb expressions p terminal cd files pass vi command g quit visibility cs gw r w ct gx read wi For help using this HELP facility, type 'help' To return to the this table of contents, type 'into' Typing 'help subject', will either print out the HELP page for 'subject' or list all related HELP subjects which contain 'subject' as a titular substring. intro? a a VADS Debugger Reference a (advance) step one source line over calls Syntax a repeats Description a single steps to the next source line for which the compiler generated code, stepping over subprogram calls. Other stepping commands are ai, s, si, and gw. The s command steps one source line into called subprograms. If the program has not yet started or if it has terminated, a starts the program, stepping one source line. For Ada programs, this steps over all the library unit elaborations where s will step into the library unit elaborations. In Screen Mode The a command is directly supported in screen mode: type a to single step one source line over subprogram calls. It is not necessary to press in screen mode. With set safe on, the screen mode command becomes aa. See also [Debugger Referenece], set, set safe. In instruction submode, a is interpreted as ai. See also [Debugger Referenece], screen mode. (EOF): a? b b VADS Debugger Reference b (break) set a breakpoint at a line or beginning of a subprogram Syntax b [line|subprogram] [of task] b [line|subprogram] [of task] begin commands end b [line|subprogram] [of task] when expression b [line|subprogram] [of task] if expression then [commands] [else [commands]] end [if] b [line|subprogram] [of task] if expression else [commands] end [if] Description The basic form of the command to set a breakpoint is the first one shown above. This sets a breakpoint at a specified line in the current file or at the beginning of a specified subprogram. line is typically given as a decimal number; however, all the options specified in the line number section of this reference are supported. To set a breakpoint at line 537 of the current source file, use the following command. b 537 subprogram is the name of an Ada subprogram, task body, or package. It is not necessary for the subprogram name to be directly visible. The name is first looked up as a normal Ada name. If it is not directly visible, all subprogram names in the program are searched. Expanded names as well as simple identifiers can also be used (starting with STANDARD if desired). To set a breakpoint at the subprogram SORT_STAMPS, the following command is used. b SORT_STAMPS See also [Debugger Reference], visibility rules and for a discussion of expanded names, RM 4.1.3(13). If the subprogram name has multiple definitions of the same simple name within the context in which it is looked up, it is overloaded. The debugger prints a diagnostic showing the alternatives. Retype the b command, using a '1, '2, ... suffix (matching an alternative shown in the diagnostic), on the subprogram name to disambiguate or use an expanded name. See also [Debugger Reference], overloading. If subprogram or line is not specified, a breakpoint is set at the current position by using the line part of the current position three-part identifier (file, line number, and instruction address). In line mode, the current position is marked with <. To set a breakpoint in another file or subprogram, use the e (enter) command to locate the correct source file. [Debugger Reference], current position, e. When the of task clause is used, the breakpoint is announced only for the specified task. task is a task number, obtained using the lt command. Command Blocks and Conditional Breakpoints A block of commands can be automatically executed when the breakpoint is reached by following the breakpoint with a command of the following format. begin commands end The breakpoint can be made conditional by appending the when expression clause. expression is checked for correctness at the time the breakpoint is set. This check takes place in the environment of the location of the breakpoint. See also [Debugger Reference], visibility rules. expression is evaluated each time the breakpoint is reached. If the expression is FALSE (0), the breakpoint is not announced and the program continues. If the expression is TRUE (non-zero), the breakpoint is announced. Use the if statement to set a conditional breakpoint that also conditionally executes debugger commands when the breakpoint is reached. expression is evaluated each time the breakpoint is reached. If it is TRUE, the breakpoint is announced to the user and any commands in a then clause are executed. If the expression is FALSE, commands in the else clause are executed. The program then continues on its way (it is not breakpointed). commands is a sequence of one or more debugger commands. These can be entered on the same line separated by semicolons, or each command can be entered on its own line as long as the first begin, then, or else is on the same line as the b keyword. The second method is recommended. As each command of commands is entered on its own line, the debugger prompts with ?? for each new command until the sequence is terminated with end (or an else in the case of an if...then...else). Each breakpoint set with a b, bd, or bi command is given a number. This number is displayed with the lb command and is used with the d command to delete the breakpoint. In Screen Mode The current position is the line in the source window that contains the cursor. When the cursor is located in the source window, typing b is the same as a line mode b command without any parameters. That is, a breakpoint is set on the line containing the cursor. The screen-mode b command is immediately acknowledged by the appearance of = to the left of the line on which the breakpoint is set. To set a breakpoint at the beginning of a subprogram while in screen mode, position the cursor on top of any letter of any occurrence of the name of a subprogram and press B. An acknowledgement message is displayed at the bottom of the screen to indicate that the breakpoint has been set. To set a conditional breakpoint in screen mode, type : and enter the line-mode command. In instruction submode, b is interpreted as bi. (EOF): b? quit quit VADS Debugger Reference quit terminate the debugger session Syntax quit Description quit exits from the debugger. exit can also be used to leave a.db. In Screen Mode Precede this command with : and follow with . (EOF): quit? exit exit VADS Debugger Reference exit terminate the debugger session Syntax exit Description exit exits from the debugger. quit can also be used to leave a.db. In Screen Mode Precede this command with : and follow with . (EOF): exit? into => => No help available for "into" ("q" - quit, "<" - backup, "help" - info on help) exit? q >exit squire 36 > logout < ^D has been subverted, must use logout >