A SERVICE OF

logo

5
Programming Release Notes
This chapter provides release notes about application and system programming
on OpenVMS systems.
5.1 Symbolic Debugger
V8.4
On OpenVMS Alpha Version 8.4, when you set breakpoints the debugger will not
be able to differentiate between FORTRAN functions and declared variables of
the same name in different compilation unit.
5.2 C++ Run-Time Library
V8.3-1H1
Problems corrected in OpenVMS Version 8.3-1H1 include the following:
The run-time library had faulty code that accessed memory just freed to
advance a pointer. In multithreaded code, another thread could reuse that
memory before the original thread could advance its pointer. This has been
xed by updating accesses prior to freeing pointers.
A new processwide exception processing mode—
pure_unix
has been
introduced. In this mode, non-C++ exceptions, also known as OpenVMS
conditions, cannot be caught in a C++ catch-all handler. This mode can
be requested by calling
cxxl$set_condition(condition_behavior)
with a
pure_unix
argument:
cxxl$set_condition(pure_unix);
condition_behavior enum declared in <cxx_exception.h> header
has been extended to include pure_unix member.
To demonstrate how
pure_unix
mode works, consider the following program
sample. As it is written, the program crashes with ACCVIO. If the call to
cxxl$set_condition( )
is commented out, the program outputs "caught" and
exits:
#include <stdio.h>
#include <cxx_exception.h>
void generateACCVIO() { *((int*)0) = 0; }
Programming Release Notes 5–1