DEC_Ada_______________________________________ Version 3.4 Release Notes for DIGITAL UNIX[R] Systems July 1998 These release notes contain important release information for DEC Ada Version 3.4 on the DIGITAL UNIX (formerly DEC OSF/1) operating system. Operating System: DIGITAL UNIX Version 4.0B, 4.0C, or 4.0D Software Version: DEC Ada Version 3.4 for DIGITAL UNIX Systems Digital Equipment Corporation Maynard, Massachusetts __________________________________________________________ July 1998 Digital Equipment Corporation makes no representations that the use of its products in the manner described in this publication will not infringe on existing or future patent rights, nor do the descriptions contained in this publication imply the granting of licenses to make, use, or sell equipment or software in accordance with the description. Possession, use, or copying of the software described in this publication is authorized only pursuant to a valid written license from DIGITAL or an authorized sublicensor. © Digital Equipment Corporation 1998. All Rights Reserved. The following are trademarks of Digital Equipment Corporation: Alpha, Bookreader, DEC, DEC Ada, DEC Ada PDO, DEC FUSE, DECterm, DECthreads, DECwindows, DIGITAL, DIGITAL Fortran, DIGITAL UNIX, ULTRIX, VAX DOCUMENT, XD Ada, and the DIGITAL logo. Motif, OSF, and OSF/1 are registered trademarks of the Open Software Foundation, Inc. UNIX is a registered trademark in the United States and other countries licensed exclusively through X/Open Company Ltd. X Window System is a trademark of the Massachusetts Institute of Technology. All other trademarks and registered trademarks are the property of their respective holders. This document was prepared using VAX DOCUMENT Version 2.1. ________________________________________________________________ Contents Preface.................................................. v 1 General Information 1.1 Prerequisites for Installing DEC Ada Version 3.4 ......................................... 1-1 1.2 Ada Predefined Library ...................... 1-2 1.3 Using X Window System and Motif Bindings in Version 3.4 ................................. 1-2 1.4 Incompatible Program Libraries in Version 3.4 ............................................. 1-3 1.5 Documentation Notes ......................... 1-3 1.5.1 DEC Ada Developing Ada Programs on DIGITAL UNIX Systems .................... 1-4 1.5.2 DEC Ada Installation Guide for DIGITAL UNIX Systems............................. 1-4 1.5.3 DEC Ada Technical Overview and Comparison on DIGITAL Platforms .................... 1-4 1.5.4 Changes Implemented in DEC Ada Version 3.3...................................... 1-5 2 Problems Corrected 3 Current Restrictions 3.1 DEC Ada Version 3.4 Compiler Restrictions ... 3-1 3.1.1 The -04 Optimization Option.............. 3-2 3.1.2 Compiler Instruction Generates Unaligned Access Error Message .................... 3-2 3.2 Restrictions on DIGITAL UNIX Systems ........ 3-3 3.3 Debugging Restrictions ...................... 3-4 iii 3.3.1 Restrictions on Ladebug Debugging ....... 3-6 3.3.2 Restrictions on dbx Debugging ........... 3-7 3.4 DEC Ada-Specific DECdts Restrictions ........ 3-7 3.5 DEC Ada Version 3.1 Run-Time Library Restrictions ................................ 3-8 3.6 DEC Ada-Specific DEC FUSE Restrictions....... 3-9 Tables 1 Conventions Used in This Manual.......... vi iv ________________________________________________________________ Preface These release notes characterize the Version 3.4 release of DEC Ada on the DIGITAL UNIX platform. These notes contain information that either supplements or supersedes the information in the DEC Ada documentation set. New customers may want to read and understand the entire release notes before using DEC Ada. Customers upgrading from Version 3.3 may find that they need to read only notes that are new for Version 3.4. Intended Audience These release notes are intended for any programmer, user, or system manager who needs information on the Version 3.4 release of DEC Ada on the DIGITAL UNIX platform. Document Structure These release notes are organized as follows: o Chapter 1 gives general information on the compiler and the compiler environment (relevant to this release) and provides any necessary documentation notes. o Chapter 2 describes problems fixed by this release. o Chapter 3 details current restrictions on the compiler, the predefined library, the program library manager, and the debugger. v Associated Documents For more information on DEC Ada Version 3.4 for DIGITAL UNIX systems, refer to the following documents: o DEC Ada Developing Ada Programs on DIGITAL UNIX Systems o DEC Ada Run-Time Reference Manual for DEC OSF/1 Systems o DEC Ada Language Reference Manual o DEC Ada Installation Guide for DIGITAL UNIX Systems o DEC Ada Technical Overview and Comparison on DIGITAL Platforms Conventions Table 1 shows the conventions used in this manual. Table_1_Conventions_Used_in_This_Manual___________________ Convention__________Description___________________________ DIGITAL UNIX Refers to the DIGITAL UNIX Alpha systems operating system, unless otherwise specified. % A percent sign (%) represents the system prompt. In interactive examples, a label enclosed in a box indicates that you press a key on the terminal; for example, . Ctrl/x The phrase Ctrl/x indicates that you must press the key labeled Ctrl while you simultaneously press another key, for example, Ctrl/C, Ctrl/D, Ctrl/L, Ctrl/O, or Ctrl/Z. boldface monospace In interactive examples, boldface text monospace text represents user input. (continued on next page) vi Table_1_(Cont.)_Conventions_Used_in_This_Manual___________ Convention__________Description___________________________ monospaced text This typeface is used in text to indicate the exact name of a command, routine, partition, pathname, directory, or file. This typeface is also used in interactive examples and other screen displays. variable This typeface is used in syntax to indicate variable values. UPPERCASE The DIGITAL UNIX system differentiates lowercase between lowercase and uppercase characters. Literal strings that appear in text, examples, syntax descriptions, and function definitions must be typed exactly as shown. cat(1) Cross-references to the online ref- erence pages include the appropriate section number in parentheses. For example, a reference to cat(1) indicates that you can find the material on the cat command in Section 1 of the reference pages. . . . A horizontal ellipsis in an example or figure indicates that not all of the statements are shown. . A vertical ellipsis in an interactive . figure or example indicates that not . all of the commands and responses are shown. n A lowercase italic n indicates the generic use of a number. (continued on next page) vii Table_1_(Cont.)_Conventions_Used_in_This_Manual___________ Convention__________Description___________________________ file-spec . . . A horizontal ellipsis following an argument, option, or value in syntax descriptions indicates that additional arguments, options, or values can be entered. boldface text Boldface text indicates DEC Ada reserved words. type_name Italicized words in syntax descrip- tions indicate descriptive prefixes that are intended to give additional semantic information rather than to define a separate syntactic category. [expression] Square brackets indicate that the enclosed item is optional. {, mechanism_name Braces in DEC Ada syntax indicate that } the enclosed item can be repeated zero or more times. italic text Italic text emphasizes important information, indicates variables, and indicates complete titles of manuals. Italic text also represents information that can vary in system messages (for example, Internal error number.) | A vertical bar in DEC Ada syntax separates alternative items unless it occurs immediately after an opening brace, in which case it stands for ____________________itself._______________________________ viii 1 ________________________________________________________________ General Information This chapter provides general information on the compiler and compiler environment relevant to the Version 3.4 release. 1.1 Prerequisites for Installing DEC Ada Version 3.4 DEC Ada Version 3.4 for DIGITAL UNIX systems requires Version 4.0B or Version 4.0C or Version 4.0D of the DIGITAL UNIX operating system. DEC Ada Version 3.4 requires the following base system subsets: o Compiler Back End o Software Development Environment o DEC Ada Run-Time Library There are two Run-Time Libraries on the kit for DEC Ada, and the appropriate one must be installed to support the generated code from the compiler: o For DIGITAL UNIX Version 4.0D, install the ADALIB404 subset, in the directory /usr/lib/cmplrs/ada_404. o For DIGITAL UNIX Version 4.0B or Version 4.0C, install the ADALIB402 subset, in the directory /usr/lib/cmplrs /ada_402. General Information 1-1 1.2 Ada Predefined Library o The predefined library source code is available in the DEC Ada predefined library. You can access this source through the acat command as well as through the documented adalibsrc directory. o New packages have been added in the predefined library to help users who may want to migrate from Ada 83 to Ada 95. DEC Ada has replaced the Ada 95 dot (.), which is not legal in Ada 83, with the Ada 83 underscore (_) symbol, as shown in the following table: _______________________________________________________ Ada_95_Name_________________DEC_Ada_Name_______________ Ada.Characters Ada_Characters Ada.Characters.Handling Ada_Characters_Handling Ada.Characters.Latin_1 Ada_Characters_Latin_1 Ada.Numerics Ada_Numerics Ada.Numerics.Discrete_ Ada_Numerics_Discrete_ Random Random Ada.Numerics.Float_Random Ada_Numerics_Float_Random Standard[1] Ada_Standard[1] Ada.Strings Ada_Strings Ada.Strings.Maps Ada_Strings_Maps Ada.Strings.Maps.Constants Ada_Strings_Maps_Constants Ada.Strings.Wide_Maps Ada_Strings_Wide_Maps Ada.Strings.Wide_ Ada_Strings_Wide_Maps_Wide_ Maps.Wide_Constants Constants [1]Declarations_in_Ada_95_Standard_and_not_in_Ada_83___ _______________________________________________________ 1.3 Using X Window System and Motif Bindings in Version 3.4 Some Xlib routines have been implemented on Version R6 of the X/Motif bindings. Version R6 (X11/R6) is the default. Versions R5 and R4 are also shipped for compatibility. 1-2 General Information All three versions can be found in the examples area. The default version is in the predefined library. The new Xlib routines are the following: XInternAtoms and XGetAtomNames XExtendedMaxRequestSize XInitImage XReadBitmapFileData XConvertCase XAddConnectionWatch, XRemoveConnectionWatch, XProcessInternalConnection XInternalConnectionNumbers XInitThreads, XLockDIsplay, XUnlockDisplay XOpenOM and XCloseOM XSetOMValues and XGetOMValues XDisplayOfOM and XLocaleOfOM XCreateOC and XDestroyOC XOMOfOC XSetOCValues and XGetOCValues XDirectionalDependentDrawing and XContextualDrawing XRegisterIMInstantiateCallback and XUnregisterIMInstantiateCallback XESetBeforeFlush 1.4 Incompatible Program Libraries in Version 3.4 To compile DEC Ada programs from another system, you must create new program libraries and compile the DEC Ada sources using DEC Ada Version 3.4 for DIGITAL UNIX Systems. Compilation libraries compiled with DEC Ada Version 3.3 or earlier must be recompiled with this kit's compiler. 1.5 Documentation Notes This section contains information about the hardcopy and online documentation. General Information 1-3 1.5.1 DEC Ada Developing Ada Programs on DIGITAL UNIX Systems o The option keywords for the two new compiler switches, -arch and -tune, are documented incorrectly. For correct documentation, see Section 1.5.4 in these release notes. o In the Command Dictionary appendix, the reference to -O5 optimization is now incorrect because -O5 is no longer allowed. 1.5.2 DEC Ada Installation Guide for DIGITAL UNIX Systems The Installation Guide does not reflect the existence of two Run-Time Libraries on the kit: ADALIB404 and ADALIB402. The sample listing of a DEC Ada Run-Time Library installation uses the name ADALIB402. This is now ADALIB404 or ADALIB402. See Section 1.1. 1.5.3 DEC Ada Technical Overview and Comparison on DIGITAL Platforms The DEC Ada Technical Overview and Comparison on DIGITAL Platforms, which provides a technical overview of DIGITAL's implementation of the Ada programming language across various DIGITAL platforms, has been revised for this release. The guide can be found, in POSTSCRIPT and ASCII formats, at the following location: /usr/lib/cmplrs/ada/dec_ada_overview_and_comparison* o The information on task scheduling is accurate only prior to DIGITAL UNIX Version 4.0. You cannot currently set System Contention Scope. For more information, see Section 3.2. 1-4 General Information 1.5.4 Changes Implemented in DEC Ada Version 3.3 The following changes were made in Version 3.3 and are not reflected in the documentation: The gprof Command Available for DEC Ada Programs As of Version 3.3, the gprof command, which displays call graph profile data, is available for DEC Ada programs. gprof produces an execution profile of programs. The effect of called routines is incorporated into the profile of each caller. The profile data is taken from the specified call graph profile file created by programs compiled and linked with the -pg flag and the -threads feature enabled as in the following example: % setenv PROFFLAGS "-threads" % ada gprof_test.ada -pg -g3 % ald -o gprof_test.out -pg gprof_test After the program has been executed, gprof can display its call graph profile data as in the following example: % gprof_test.out . . . % gprof -s gprof_test.out call graph profile: The sum of self and descendents is the major sort for this listing. function entries: index the index of the function in the call graph listing, as an aid to locating it (see below). . . . For more information on gprof, see the gprof(1) reference page. General Information 1-5 Support for Compiler Switches As of Version 3.3 the compiler implemented support for two new switches: -arch and -tune. The -arch compiler switch is used to control the use of new Alpha instructions. The -tune compiler switch selects processor-specific tuning for implementations of the Alpha architecture. Tuning for a specific implementation can provide improvements in run-time performance. Option keywords for both switches are defined as follows: o 0-Selects instruction tuning appropriate for generic implementations of the Alpha architecture. o 1-Selects instruction tuning appropriate for the host machine. o 2-Selects instruction tuning appropriate for ev4 implementations (21064, 21064A, 21066, and 21068 processors) of the Alpha architecture. o 3-Selects instruction tuning appropriate for ev5 and ev5-compatible implementations (21164 processors) of the Alpha architecture. o 4-Generates instructions appropriate for ev56 implementations (21164A processors). For example: % ada -arch0 t.ada ________________________Note ________________________ The option keywords as documented here differ from the option keywords as documented in the DEC Ada Developing Ada Programs on DIGITAL UNIX Systems. The manual is in error. _____________________________________________________ Setting the -arch switch causes a corresponding setting in the -tune switch. If desired, you can override the -tune setting by explicitly specifying it on the command line. 1-6 General Information These switches and option keywords are also documented in the online reference page ada(1). ________________________Note ________________________ Additional processors are not supported. _____________________________________________________ Support for ada_debug If you experience problems calling the ada_debug routine, you may need to upgrade the version of Ladebug you are running. Call the DIGITAL Customer Support Center to upgrade your version of Ladebug to 4.0-26. You may see the following error message when you are expecting the ada_debug prompt: (decladebug) p ada_debug() Main program terminated by unhandled exception: CONSTRAINT_ERROR at pc: 0x000000 012003620C Segmentation fault (core dumped) General Information 1-7 2 ________________________________________________________________ Problems Corrected This chapter lists reported problems fixed by this release or by the current version of the DIGITAL UNIX operating system as it affects this release. It is not meant to indicate all problems resolved but merely to list some problems that may be encountered by the typical user. The intention is to provide a brief, rather than an in- depth, description of the problem and its resolution. The following lists problems fixed by Version 3.4: o Type CARDINAL previously caused a problem with X/Motif bindings: On DIGITAL UNIX systems, type unsigned longword is 64 bits long, whereas the Ada bindings use type CARDINAL, which was 32 bits long. Type CARDINAL has been changed to 64 bits to solve this problem. o Type conversion functions in Motif bindings have been removed or corrected. They previously used UNCHECKED_ CONVERSION to convert between types with unequal sizes. The following functions are used only when sizes are converted. A program error is raised if the sizes do not match: TO_INT8 TO_INT16 TO_INT32 The following functions have been either corrected or removed: TO_X_LONG TO_ADDRESS TO_POINTER_TYPE TO_X_INT TO_KEYSYM TO_MODIFIER Problems Corrected 2-1 TO_CARDINAL TO_GEOMETRY_RESULT TO_KEYSYM_TYPE FROM_INPUT_MASK_TYPE FROM_ADD_INPUT_MASK_TYPE TO_POSITION TO_KEYCODE FROM_EVENT_TYPE TO_VT TO_AVT o Previously, a LOW_LEVEL_IO memory leak affected DIRECT_ IO and various other predefined Ada units. This problem has been fixed. o Previously, there was a problem with optimization of a task entry with a FOR loop. This problem has been fixed. o Previously, TEXT_IO would fail when outputting a floating-point number. This problem has been fixed. o Previously, there was a Posix problem with time: In Posix1_files, the Time_t_to_POSIX_Time function did not work correctly when the time_t argument was a time before 00:00 UTC and after 00:00 local. This problem has been fixed. o Some types in the Motif bindings were declared to be 32 bits in length when they should have been 64. The declarations have been corrected. The types are: INPUT_ID_TYPE INTERVAL_ID_TYPE WORK_PROC_ID_TYPE CMS_COLOR_TYPE Some types were not aligned properly. The alignment of the following types has now been corrected: ACTIONS_REC_TYPE COLOR_TYPE 2-2 Problems Corrected o Previously, the definition of the type REASON_TYPE for the R5 bindings was incomplete. The following values have been added to REASON_TYPE in MOTIFBINDING_ X_WIDGET_.ADA for the R5 and R6 bindings: CREATE TEAR_OFF_ACTIVATE TEAR_OFF_DEACTIVATE OBSCURED_TRAVERSAL PROTOCOLS o Prior to DIGITAL UNIX Version 4.0D, users could not link Ada tasking programs non-shared. As of Version 4.0D, DECthreads supports linking non-shared (-S0); you will need a special kit to do so (see the DECthreads README for more information). Ada programs need this feature only for linking tasks, which are implemented with DECthreads. o User programs run on DIGITAL UNIX Version 4.0B get PROGRAM_ERROR when calling SET_TASK_PRIORITY.SET_ HIGH_OSF_THREAD_PRIORITY to set the task priority outside the normal DEC Ada priority range. This is a restriction on Version 4.0B of the DIGITAL UNIX operating system, occurring because of too few unique priorities (provided by DECthreads). The solution is to upgrade your version of the operating system to DIGITAL UNIX V4.0D. o A DEC Ada program with a loop consisting of a single task entry call got incorrect results if the loop iteration was necessary to determine values. The incorrect results occurred if the loop variable or a function with side effects was passed as parameter to the task. This problem has been fixed by eliminating the optimization for all cases except the case of a loop with a single simple task entry that has no parameters. A compiler fix to disable incorrect optimization is implemented in DEC Ada V3.4. o The -O5 compiler optimization switch is no longer allowed. Problems Corrected 2-3 o Calls to TEXT_IO previously raised invalid exception errors. The predefined library TEXT_IO is updated in DEC Ada V3.4. 2-4 Problems Corrected 3 ________________________________________________________________ Current Restrictions This chapter describes DEC Ada restrictions in the following areas: o Compiler o DIGITAL UNIX operating system o Debugging environment o DEC FUSE features o DECdts o Run-time library 3.1 DEC Ada Version 3.4 Compiler Restrictions The following are restrictions for this version of the compiler: o Opening a file for append and not writing to it overwrites the file. o Because of DECthreads changes in how priorities are implemented, users may see changes in how their programs behave if they set priorities other than with the Ada pragma PRIORITY mechanism. An example would be mixing with non-Ada code that also sets priorities. Programs using only pragma PRIORITY to set priorities will see no such changes. Current Restrictions 3-1 3.1.1 The -04 Optimization Option When the -04 optimization option is in effect (the default unless the -g or -g2 option is specified), compilation speed can appear slow for some units because the compiler assumes a pragma INLINE for calls to some local subprograms. As a result, the compiler virtual size can become large for some units, causing a slow compilation rate. If you find that the compiler is slow for a particular unit and the -O4 option is in effect, try compiling again with a lower optimization level. For example, try compiling with the -O3 option. You can check the virtual size of the compiler by entering the ps u command while the compiler is running. (You can use the w flag to control the width of the ps command output.) For example: % ps uw USER PID %CPU %MEM VSZ RSS TT S STARTED TIME COMMAND jones 13571 28.0 46.0 66.4M 28.5 pa U 09:39:04 2:19.43 /usr/bin/adacom jones 944 1.0 0.5 2.18M 624K p6 S 10:06:57 0:01.13 -csh (csh) jones 974 0.0 0.4 2.13M 496K p6 I 10:11:43 0:00.09 csh test.com jones 976 0.0 0.0 160K 32K p6 I 10:11:43 0:00.02 ada /j/ada2 In the COMMAND column, /usr/bin/adacom denotes the DEC Ada compiler. The VSZ column gives the virtual size of the compiler. Except for large units, the virtual size of the compiler normally is in the range of 5.0M to 30.0M bytes. A large virtual size (for example, 66.4) suggests that you should be using an optimization level other than -O4. 3.1.2 Compiler Instruction Generates Unaligned Access Error Message The compiler occasionally generates an instruction that requires the alignment of the data in memory to be different from the actual alignment. When this occurs, the DIGITAL UNIX operating system detects the error and executes an equivalent instruction for unaligned data. Your program works as expected although performance is reduced. 3-2 Current Restrictions A message similar to the following is displayed: Unaligned access pid=7968 va=408b62ea pc=300a28d4 ra=300a292c type=ldl You can suppress such messages using the uac(1) command. For example, if you always want to suppress these messages, you can put the following command into ~/.login: uac p 0 For more information, see the uac(1) reference page. 3.2 Restrictions on DIGITAL UNIX Systems The following restrictions apply to DIGITAL UNIX systems: o DEC Ada does not support DECthreads System Contention Scope threads in this release. The default for all DIGITAL UNIX Version 4.0n releases is currently Process Contention Scope. (DECthreads are used for Ada tasking.) o You cannot set the processor for running an Ada task using Processor_Affinity. The Set_Affinity_for_Current_ Task routine does not work. o User programs run on DIGITAL UNIX Version 4.0B get PROGRAM_ERROR when calling SET_TASK_PRIORITY.SET_ HIGH_OSF_THREAD_PRIORITY to set the task priority outside the normal DEC Ada priority range. This is a restriction on Version 4.0B of the DIGITAL UNIX operating system, occurring because of too few unique priorities (provided by DECthreads). The solution is to upgrade your version of the operating system to DIGITAL UNIX V4.0D. o DIGITAL UNIX V4.0 identifies and reports references to a nonexistent .rdata section. This can occur when the program contains references to null data records and no other data. The user sees the following error message during linking: ald: Error: Errors during link operation
:Permission denied. Current Restrictions 3-3 o When linking some DEC Ada programs into a dynamic executable (the default for the ald command), the DIGITAL UNIX V3.0 linker ld may terminate with an error similar to the following: ld: mgot_get_got_idx_for_pmext: Found symbol(ADA$..._...) isnt in current got(0) ald: Error: Errors during link operation The workaround is to link the program into a static executable. Specify the -S0 option to the ald command which results in ald invoking ld with the -non_shared option. o DEC Ada does not support the om optimization tool that performs post-linking optimizations. 3.3 Debugging Restrictions The following debugging restrictions are global; they apply to debugging with either Ladebug or dbx. o Task debugging is not supported on multiprocessor systems. A workaround is to use the ada_debug command, hold [id], to place the specified tasks on hold during a debugging session. Tasks may then be released using the release [id] command. For more information on these commands and other ada_debug commands, see the DEC Ada manual, Developing Ada Programs on DIGITAL UNIX Systems. o The ada_debug run command is not supported. o The ada_debug show -f command no longer shows the stack size. o Some kinds of source program identifiers are not passed to the debugger, so no operations on those identifiers are possible. To see what symbols are provided to the debugger, use the stdump command as in the following example: stdump -c a.out | more o Constants cannot be debugged. They are omitted from the debugging information for your program. o Setting a breakpoint on a label name does not work. 3-4 Current Restrictions o The debugger does not recognize (as a pointer) variables of a private type whose corresponding full type declaration is an access type. Instead, you can use the px alias to print the hexadecimal value of the variable and then use the general memory examination mode with this hexadecimal value providing the starting point. o You may not be able to set a breakpoint on an instance of a subprogram that is declared in a generic unit, especially if the program contains more than one instantiation of the same generic unit. In such cases, the following commands may work: (dbx) func NEW_G$ELAB -- Where NEW_G is an instantiation -- of generic unit G (dbx) which P -- Where P is the name of a -- subprogram declared in G g.P -- Confirms that dbx is finding the -- correct P (dbx) px P -- Displays the address of P 0x120004130 (dbx) stopi at 0x120004130 o The debugger does not support extended 8-bit (Latin-1) characters in identifiers. o When you link a DEC Ada program, the ald command includes a routine called main in the program's executable file to manage the program's execution. For example, this routine elaborates the program and invokes your main program. If your main program is also named main, attempts to set a breakpoint do not work as expected. In this case, you can use the command stop at ADA$MAIN$M to set a breakpoint at your main program. Current Restrictions 3-5 3.3.1 Restrictions on Ladebug Debugging The following restrictions apply to debugging with the Ladebug debugger: o Ladebug Version 4.0-43 hangs an Ada program while loading the image's symbols, and does not display a prompt. The workaround is to upgrade your version of Ladebug or use dbx. o Ladebug Version 4.0-44 does not allow setting breakpoints to line numbers for some programs. This happens both when you use generic instantiations and when an image has been built from multiple compilation units (objects) that came from the same file. A warning message is issued and the breakpoint is not set. For example: (ladebug) stop at 522 Warning: More than one file named 't.ada' found in the binary. Warning: Breakpoint not set. o Objects with address representation clauses may have erroneous debugging information. o ada_debug(). If you see the following error message when you are expecting the ada_debug prompt, you may need to upgrade your version of Ladebug: (decladebug) p ada_debug() Main program terminated by unhandled exception: CONSTRAINT_ERROR at pc: 0x000000 012003620C Segmentation fault (core dumped) Call the DIGITAL Customer Support Center (CSC) for more information. o On DIGITAL UNIX using Ladebug, users are not able to reference up-level nested declarations. Users instead get the following error: (ladebug) print u Error: value of u is being taken in frame that does not enclose its scope 3-6 Current Restrictions Consider the following test program: procedure t is a : integer; procedure test is begin a := 1; end; begin a := 2; test; end; When Ladebug is asked to print the value of the variable a, the following error messages result: Error: value of a is being taken in frame that does not enclose its scope Error: no value for symbol a Error: no value for a The workaround is as follows: (ladebug) whereis a "/tle/ada13/test/t.ada"`t`a (ladebug) p "/tle/ada13/test/t.ada"`t`a Another workaround is to use dbx in this situation. 3.3.2 Restrictions on dbx Debugging The following restriction applies to debugging using dbx: o If a single source file contains multiple compilation units, dbx may be unable to set breakpoints on some subprograms. In some cases, putting each compilation unit in a separate source file will alleviate the problem. 3.4 DEC Ada-Specific DECdts Restrictions The DIGITAL Distributed Time Service (DECdts) and other programs that call adjtime() can cause DEC Ada delays to appear insufficient. Current Restrictions 3-7 The DIGITAL UNIX operating system implements delays by blocking the delaying task for the specified number of hard clock ticks. With each hard clock tick, the operating system checks to see if any delays have expired. If so, then it wakes up the tasks. It also checks to see if the time-of-day clock (used by Calendar.Clock) should be updated. If you are running DECdts, there may be cases where the time-of-day clock does not get updated with every clock tick because of clock synchronization. This lack of updating the time-of-day clock is what causes DEC Ada delays to appear insufficient. Suppose the current time of day is 100 clock ticks past midnight and the task decides to delay for 10 clock ticks. With each clock tick, the kernel checks the queue of delayed tasks to see if the time-of-day clock should be incremented. However because of DECdts, suppose there are two occasions when the time-of-day clock is not incremented. In this case, at the tenth hard clock tick the task delay is over and the task is activated. If the task then gets the current time of day (for example, by calling Calendar.Clock) it will be 108. When this is compared to the time when the delay started (100), it will appear that the delay lasted only 8 clock ticks when it actually lasted 10 hard clock ticks. Any program (not just DECdts) that calls adjtime() can affect the time-of-day clock. For more information, see the adjtime(2) reference page. 3.5 DEC Ada Version 3.1 Run-Time Library Restrictions The signal SIGABRT, which was designed to handle interrupt entries, does not work as explained in the DIGITAL UNIX documentation. It is expected that this will be fixed in a future release of the operating system. 3-8 Current Restrictions 3.6 DEC Ada-Specific DEC FUSE Restrictions On systems running DIGITAL UNIX Version 3.0 and DEC FUSE Version 2.0, new categories in cross-references are not fully supported. Restrictions on DEC FUSE Debugging You need to disable the initial breakpoint (in main) if you want the DEC FUSE Debugger to be case-insensitive initially. The DEC FUSE Debugger's Source Browser does not handle augmented filenames that result from having multiple compilation units in the same source file. This prevents using the Source Browser to set a breakpoint in a subprogram that is in a package that shares its source file with other units. Restrictions on Using the DEC FUSE cross referencer or call graph browser When using the DEC FUSE cross referencer or call graph browser with DEC Ada, you may see the following message in the DEC FUSE database manager's transcript box: fuseadaxref: Error: fscanf result: 1 This message may be displayed when a cross reference database is created or updated and should be ignored. Current Restrictions 3-9