Document revision date: 9 May 2001

## OpenVMS Version 7.3 Release Notes

Previous | Contents | Index

### 6.8.1 DCE System Management Command Procedure

V7.3

With the update of the DCE RPC files in OpenVMS Version 7.2-1, the following changes have been made to the DCE system management command procedure (SYS$MANAGER:DCE$SETUP.COM):

- DCE$SETUP once again stops the RPC daemon when shutting down DCE, although SYS$MANAGER:DCE$RPC_SHUTDOWN.COM may still be called in place of DCE$SETUP if DCE is being used in RPC-only mode.
- DCE components can no longer be started, stopped, or configured without shutting down the RPC daemon.

### 6.8.2 NTLM Authenticated RPC Functionality Now Available

V7.3

The new authenticated RPC functionality in DCE for OpenVMS Version 3.0, including impersonation and authentication with NT Lan Manager (NTLM) protocol, is included as of OpenVMS Version 7.2-1.

The Compaq Distributed Computing Environment for OpenVMS VAX and OpenVMS Alpha documentation that ships with OpenVMS Version 7.2-1 and Version 7.3 provides information about using NTLM.

## 6.9 Debugger

This section contains release notes pertaining to the OpenVMS Debugger.

### 6.9.1 ANALYZE/PROCESS_DUMP Command (Alpha Only)

V7.3

The documentation for the OpenVMS debugger command ANALYZE/PROCESS_DUMP states that if you do not include the /IMAGE_PATH=directory-spec qualifier, the debugger looks for the debugger symbol table (.DSF or .EXE) file in the following directories:

1. In the directory that contains the dump file
2. Directory SYS$SHARE
3. Directory SYS$MESSAGE

Currently, if you do not include the /IMAGE_PATH=directory-spec qualifier, the debugger does not look in the directory that contains the dump file, but rather, in the directory from which you started the debugger.

The workaround is to use the qualifier /IMAGE_PATH=directory-spec to specify the location of the debugger symbol table file.

### 6.9.2 SET MODULE Command

V7.3

The SET MODULE command can now handle scopes nested to 200 levels. The previous limit was 100 levels.

### 6.9.3 SET EVENT Ada Command

V7.3

In previous versions of the debugger, the SET EVENT Ada command sometimes did not work, and the event facility remained THREADS. This problem has been corrected.

### 6.9.4 Enumerated Lists

V7.3

In previous versions of the debugger, matching an enumerated list by using a declaration resulted in an error. For example, the following declaration caused a logic error:

     namespace ns {  enum EE { Me, Myself, I };     }
     main()       {  using ns::EE;
                     EE e = Me;                     }

The logic error is as follows:

      DBG> EXAMINE EE
      %DEBUG-E-INTERR, debugger error in DBGPARSER\PATHNAME_TO_PRIMARY 10...

This problem has been corrected.

### 6.9.5 Enumeration Literals as Class Members

V7.3

Previous versions of the debugger did not treat C++ enumeration literals as class members. This problem has been corrected. For example, given the following declaration, the debugger will match 'B::red' and 'b.red', and 'p->red':

      struct B { enum colors { yellow, red, green, purple }; } b, *p;

### 6.9.6 Global Symbol Table Search

V7.3

When debugging C and C++ programs, previous versions of the debugger had a problem when searching the global symbol table, which was caused by incorrect internal assumptions about case. For example:

     DBG> EXAMINE FOO
     %DEBUG-E-NOSYMBOL, symbol 'foo' is not in the symbol table
     DBG> EXAMINE FOO
     X_CXXC_BUGS3560A\foo:   0

This problem has been corrected.

### 6.9.7 Global Section Watchpoints (Alpha Only)

V7.3

Previous versions of the debugger sometimes had difficulty setting watchpoints on global section variables. This problem has been corrected.

### 6.9.8 Array Elements Displayed Differently on VAX and Alpha

V7.3

Previous versions of the Alpha debugger displayed FORTRAN arrays in row-major order. This problem has been corrected so that the Alpha debugger now displays FORTRAN arrays in column-major order.

### 6.9.9 Wrong Address in C++

V7.3

While debugging a C++ program, previous versions of the debugger sometimes have trouble accessing an object. For example:

     DBG> EXAMINE C
     %DEBUG-E-NOACCESSR, no read access to address 000000017AEF3A34

The debugger would sometimes look for a 64-bit address when it should have been looking for a 32-bit address. This problem has been corrected.

### 6.9.10 Cross-Image Symbol Fixup

V7.3

When using the Version 7.2 Alpha debugger, attempts to examine or evaluate universal data variables sometimes resolved to the wrong address because of a cross-image symbol fixup problem. This problem has been corrected.

### 6.9.11 Interrupting Program Execution in Compaq DECwindows Motif Interface

V7.3

In Version 7.2 of the debugger, the STOP button in the DECwindows Motif interface and Ctrl/C in screen mode sometimes do not return control to the user. This problem has been corrected.

### 6.9.12 Nested Anonymous Unions

V7.3

In previous versions of the debugger, nested anonymous unions in C++ led to incorrect symbolizations. For example, the following definition symbolized u.s as 'u. ::s':

       struct U {
           int x;
           union { int l; union { int s; int t; }; };
           } u;

This problem has been corrected.

### 6.9.13 Anonymous Structs in C

V7.3

C variant_struct is a VAX C extension in Compaq C that allows the creation of anonymous structs. For example, the following definition allows references such as 'u.a':

        union {
            variant_struct {
               int a;
               int b;
            } vs;
        } u;

Previous versions of the debugger did not allow this. This problem has been corrected.

### 6.9.14 Symbolization of C++ References

V7.3

Previous versions of the debugger symbolized C++ references with an extra period at the end. For example:

        Source:      int &k = i;

        Symbolization:     REFERENCE\k.:   0

This problem has been corrected.

### 6.9.15 Enumerators as Class Symbols

V7.3

In previous versions of the debugger, the following C++ definition:

      struct C_Outer {
           struct C_Middle2 {
                   enum Middle2_E3 {};
           } middle2;
      } c_outer;

led to the following error:

    DBG> show SYMBOL/FULL C_Outer
    type C_Outer
        struct (C_Outer, 1 component), size: 1 byte
          contains the following members:
    %DEBUG-E-INTERR, debugger error in DBGDUMP\DBG$GET_SYMBOL_OFFSET
                or session corruption

This problem has been corrected.

### 6.9.16 Inline Code

V7.3

Previous versions of the debugger could fail when trying to set a breakpoint within a routine that is inlined within a program that is compiled with the /OPTIMIZED switch. Users would receive an error message similar to the following:

    DBG> SET BREAK %LINE 37
    %DEBUG-E-INTERR, debugger error
          in DBGEVENT_SEMANTICS\GET_LINE_BREAK_ADDRESSES 40
          or session corruption
    %DEBUG-E-CMDFAILED, the SET BREAK command has failed

This problem has been corrected.

### 6.9.17 Symbols in Nested Ada Packages

V7.3

Previous versions of the debugger failed to find symbols declared within nested Ada packages when the actual package names were used. For example:

    DBG> EXAMINE AETS_SPECIAL_EVENTS_DETECTION_DATA_.POOL.STUB_COUNTER_PUT
    AETS_SPECIAL_EVENTS_DETECTION_DATA_.POOL.STUB_COUNTER_PUT:      0
    DBG> EXAMINE AETS_SPECIAL_EVENTS_DETECTION_DATA.POOL.STUB_COUNTER_PUT
    %DEBUG-E-NOSYMBOL, symbol 'AETS_SPECIAL_EVENTS_DETECTION_DATA\POOL.STUB_COUNTER_PUT'
    is not in the symbol table

This problem has been corrected. For example:

    DBG> EXAMINE AETS_SPECIAL_EVENTS_DETECTION_DATA_.POOL.STUB_COUNTER_PUT
    AETS_SPECIAL_EVENTS_DETECTION_DATA_.POOL.STUB_COUNTER_PUT:      0
    DBG> EXAMINE AETS_SPECIAL_EVENTS_DETECTION_DATA.POOL.STUB_COUNTER_PUT
    AETS_SPECIAL_EVENTS_DETECTION_DATA_.POOL.STUB_COUNTER_PUT:      0

### 6.9.18 Symbol Table Errors

V7.3

Previous versions of the debugger had trouble reading certain debugger symbol table (DST) files. For example:

        %DEBUG-E-INTERR, debugger error in DBG$RST_FROM_DST: could not find
        corresponding RST or session corruption

This problem has been corrected.

### 6.9.19 Debugger Runs out of Memory at Startup

V7.3

Previous versions of the debugger ran out of memory when loading certain large programs. This problem has been corrected.

### 6.9.20 Nonunique COBOL Symbol Lookups (VAX Only)

V7.3

In previous versions of the debugger, lookups of certain COBOL record components resulted in nonunique symbol errors. For example:

    DBG> SET MODULE B_COB
    DBG> EXAMINE D00_DIALLING_NO
    %DEBUG-I-NOUNIQ, symbol 'D00_DIALLING_NO' is not unique
       record component A_COB\COMMON_DATA_FORMAT_WKSP.D00_CDF.CDF_WKSP.D00_DIALLING_NO
       record component B_COB\COMMON_DATA_FORMAT_WKSP.D00_CDF.CDF_WKSP.D00_DIALLING_NO
    %DEBUG-E-REENTER, reenter the command using a more precise pathname

This has been corrected.

### 6.9.21 Register View

V7.3

Previous versions of the debugger had the following problems associated with the Register view:

- Debugger errors occurred when selecting registers after the register display list had changed.
- Use of the Deposit Box shortcut menu caused unaligned register displays.
- Vertical scrolling sometimes corrupted the righthand side register values.
- It was difficult to change the floating point radix of register displays.

Some of these problems are internal to the debugger, and some originate in DECwindows Motif. The display problems have been corrected as much as is practical.

New Options on the Radix Submenus

In addition, the Change Radix and Change All Radix submenus (on the Register menu of the Register view) have additional options. On VAX, you can now select f_float for register display. On Alpha systems, you can now select g_float and t_float for register display.

### 6.9.22 Source View Errors

V7.3

Previous versions of the debugger had problems within the source view of the DECwindows Motif interface, including the following:

- Breakpoints set on routines through the source browser sometimes failed to toggle on and off.
- The source view was unstable whenever the code was scrolled when used with DECwindows Motif Version 1.2-5.
- Debugger errors occurred when the user was scrolling source code after the RUN command and before the first GO command.

These problems have been corrected.

### 6.9.23 Source View Update

V7.3

In previous versions, the DECwindows Motif interface to the debugger did not correctly update the source view on a return step command from a subroutine call when the calling routine was in a different source module. This problem has been corrected.

### 6.9.24 SHOW SYMBOL IN Clause

V7.3

The ability of the debugger to set modules dynamically has been improved.

### 6.9.25 Corrupted Stack Errors (Alpha Only)

V7.3

On Alpha systems, some recent compilers introduce certain stack errors. If previous versions of the debugger encounter these errors while program execution is suspended at a breakpoint, a STEP or other resume command can result in the following error:

    %DEBUG-W-NORESUME, unable to resume execution, stack or PC corrupted.

This problem has been corrected, and you should upgrade the compiler that causes the corrupt stack.

### 6.9.26 Just-in-Time Debugging

V7.3

When attempting just-in-time debugging (for example, when DBG$TRACE is defined as SYS$SHARE:DEBUG.EXE), previous versions of the debugger sometimes fail. This has been corrected.

### 6.9.27 Debugger Does Not Support Previous Version of Client/Server Interface

V7.3

The OpenVMS Version 7.3 debugger does not support previous versions of the client/server interface. You must install the client/server interface found in the kit on the distribution media, as identified in the following table:

CPU | Operating System | Client Kit
--- | --- | ---
Intel | Microsoft Windows 95, 98 | [DEBUG_CLIENTS011.KIT]DEBUGX86011.EXE
Intel | Microsoft Windows NT, 2000 | [DEBUG_CLIENTS011.KIT]DEBUGX86011.EXE
Alpha | Microsoft Windows NT | [DEBUG_CLIENTS011.KIT]DEBUGALPHA011.EXE

These client kits are self-extracting .EXE files.

Once the appropriate executable file has been transferred to the PC, you can run the file to install the debug client on the PC. The InstallShield installation procedure guides you through the installation.

By default, the debug client is installed in the `\Program Files\OpenVMS Debugger` folder. You can also click Browse to select an alternate location.

## 6.10 Debugging Modes---Avoiding CPUSPINWAIT Bugchecks

V7.1

The OpenVMS operating system has a number of special modes of operation designed to help you debug complex hardware and software problems. In general terms, these special modes enable an extra level of tracing, data recording, and consistency checking that is useful in identifying a failing hardware or software component. These modes of operation are controlled by several system parameters: MULTIPROCESSING, POOLCHECK, BUGCHECKFATAL, and SYSTEM_CHECK.

If you are using one of these special modes (for example, to debug a device driver or other complex application), under certain conditions, generally related to high I/O loads, it is possible to incur a CPUSPINWAIT bugcheck. To prevent a CPUSPINWAIT bugcheck, either use the system default settings for these system parameters, or reduce the loading of the system.

If you have reason to change the default settings, you can reduce the likelihood of encountering a problem by setting the SMP_LNGSPINWAIT system parameter to a value of 9000000.

## 6.11 Hypersort (SORT/MERGE/CONVERT)---Alpha Only

The following sections contain release notes pertaining to restrictions and known problems in the use of the High-Performance Sort/Merge utility, Hypersort. These restrictions and known problems supplement the material in the OpenVMS Utility Routines Manual.

Hypersort (HYPERSORT.EXE) can optionally be selected for use by SORT, MERGE, CONVERT, Compaq COBOL, and Oracle Rdb. Use SORT32 as a work-around for problems or restrictions in Hypersort, unless the problem or restriction also exists in SORT32.

### 6.11.1 Hypersort and /FORMAT=RECORD_SIZE - Restriction

V7.3

Hypersort does not support /FORMAT=RECORD_SIZE for use with SORT or MERGE.

### 6.11.2 Hypersort and Input Asterisk (*)---Restriction

V7.3

Hypersort does not support asterisk (*) as an input file specification.

### 6.11.3 Hypersort and Free Disk Space for Work Files---Restriction

V7.3

Hypersort does not support work-file specifications that result in insufficient free disk space to complete the sort or merge operation.

### 6.11.4 Hypersort Work File Directories---Restriction

V7.3

Hypersort work files must be redirected to directories that allow multiple-file versions that can handle the number of requested work files. This restriction also exists in SORT32.

### 6.11.5 Hypersort and VFC Files---Known Problem

V7.3

Hypersort does not correctly calculate the byte offset for keys for VFC Format files.

### 6.11.6 Hypersort and /STATISTICS Working-Set Display---Known Problem

V7.3

Hypersort overflows the working-set display in the /STATISTICS output for any working set that is 1,000,000 pages or larger. This is also a known problem with SORT32.

### 6.11.7 Hypersort and INSVIRMEM---Restriction

V7.3

Both SORT32 and Hypersort depend on the proper relationship between working-set size and page-file quota to avoid insufficient virtual memory. In general, page-file quota may need to be three times the working-set size or even larger to avoid insufficient virtual memory.

If insufficient virtual memory is detected, SORT32 signals INSVIRMEM and attempts to complete the sort. Hypersort terminates in this situation with INSVIRMEM or possibly ACCVIO.

## 6.12 Lexical Functions---F$GETSYI Lexical: Item NODE_HWTYPE Is Obsolete

V7.2

The NODE_HWTYPE item is obsolete. Please use the HW_NAME item instead.

The NODE_HWTYPE item has not been removed; therefore, programs using this item will still work. However, Compaq recommends that you migrate such programs to use the HW_NAME item whenever possible to take advantage of new capabilities.

On OpenVMS VAX systems, applications using NODE_HWTYPE receive cryptic, 4-character, system model names for all VAX systems and receive the string ALPH for all Alpha systems. In contrast, the HW_NAME item operates on both OpenVMS VAX and OpenVMS Alpha systems, and provides longer, more descriptive names to be returned. For example, HW_NAME returns "VAXstation II," whereas NODE_HWTYPE returns "VUV2" for the same system.

## 6.13 Librarian Utility---PGFLQUOTA Should Exceed 23000 (Alpha Only)

V1.5

The OpenVMS Alpha LIBRARIAN sometimes does not inform you of errors during compression, data reduction, or data expansion operations. This problem occurs if the account or process in which the LIBRARIAN is running has a low PGFLQUOTA process quota. Operation failure is not readily apparent because the $PUTMSG system service always returns a status of SS$_NORMAL, even when the system service fails. However, when a failure occurs, the LIBRARIAN returns a status other than Success.

To work around this problem, run the compression, data reduction, or data expansion operation in an account with a PGFLQUOTA process quota greater than 23000. In addition, ensure that your command procedures check the return status from the LIBRARY command.

## 6.14 Linker Utility---Limit of 25 Elements on Stack

V7.2

Developers who are creating object files should be aware that the linker's internal stack is guaranteed for only 25 elements. Any calculations must be done within this constraint.

## 6.15 LTDRIVER---CANCEL SELECTIVE Cannot Cancel IO$_TTY_PORT Functions

V6.1

In releases prior to OpenVMS Version 6.1, LTDRIVER did not set the "extended DDT" bit; therefore, the POSIX function CANCEL SELECTIVE did not work with LTDRIVER. This problem has been corrected, but a restriction remains.

Although this fix allows $QIO reads and writes to be selectively canceled, any $QIO done to the port driver (that is, with the IO$_TTY_PORT function modifier---like a LAT connect $QIO) cannot be canceled with CANCEL SELECTIVE.

## 6.16 MACRO--32 Compiler for OpenVMS Alpha (Alpha Only)

See Chapter 8 for a number of notes that concern the MACRO--32 compiler.

## 6.17 Mail Utility---Threads Restriction for Callable Mail

V7.1

OpenVMS callable mail routines are not thread-safe. Refer to the Guide to POSIX Threads Library for more information about calling non-thread-safe routines within a threaded application.

Because callable mail context information is maintained on a per-process (rather than a per-thread) basis, multiple threads performing context-based processing must be synchronized so that only one mail context of a given type is active at once. Otherwise, one thread could corrupt another thread's mail operations.

On OpenVMS Alpha systems, there is an additional restriction when kernel threads is enabled in a multithreaded environment. In this environment, callable mail should be used only in the initial thread.

Previous | Next | Contents | Index

| privacy and legal statement |
6637PRO_008.HTML