TotalView(TM) Multiprocess Debugger Release Notes Version 3.9.0-1 July 23, 1999 Etnus, the tools unit of Dolphin Interconnect Solutions Inc., announced a corporate name change to Etnus Inc., effective Jan. 1, 1999. Etnus Inc. is a wholly owned subsidiary of Dolphin Interconnect Solutions. These Release Notes for TotalView 3.9.0-1 contain important information about requirements that affect your TotalView 3.9.0-1 software, and license. Please read these Release Notes to understand how this information applies to your installation! This document describes changes made since the release of TotalView 3.8.1. The manuals for this release are TotalView User's Guide, Version 3.9.0, May 1999, and the TotalView Installation Guide, Version 3.9.0, May 1999. ------------------------------------------------------------------------ Contents Introduction: Platform Tags and Platform Names Chapter 1: What's New Chapter 2: TotalView 3.9 Supported Platforms and System Requirements Other Platforms EXTREMELY IMPORTANT: Digital UNIX Patch Procedures Apogee 4.0 Compiler Patch Procedures Portland Group HPF 2.4 Supported Configurations Portland Group HPF 2.4 Compiler Patch Procedures IBM PE Message Queue Display License Management Issues Chapter 3: TotalView News Chapter 4: Problems and Reports Reporting Problems How to Contact Us Notices ------------------------------------------------------------------------ Introduction: Platform Tags and Platform Names These release notes refer to the various supported platforms by the Platform Tag and Platform Name listed in the table in the Chapter 2: TotalView Supported Platforms and System Requirements. Please refer to that section for a full description of the platform. ------------------------------------------------------------------------ Chapter 1: What's New TotalView 3.9 supports the following new features: * New: OpenMP * New: Array Data Filtering * New: Fast Single-Stepping * New: Compiled Expressions for the IRIX6-MIPS Platform * New: Dynamically Loaded Library Debugging Support * New: QSW RMS 2.x Automatic Process Acquisition for the ALPHA Platform * New: IRIX 6.5 pthreads Package for the IRIX6-MIPS Platform * New: Compiler-generated Parallelism for the IRIX6-MIPS Platform * New: Shared Memory Code for the IRIX6-MIPS Platform * New: Compiled Expression Patch Space Allocation Controls For a full description of these features, please refer to the TotalView User's Guide. ------------------- OpenMP On the ALPHA and IRIX6-MIPS platforms, TotalView now allows you to debug your OpenMP Fortran applications. This support includes: * Source level debugging of OpenMP code * Visibility of OpenMP worker threads * Access to OMP THREADPRIVATE data (ALPHA only) * Access to shared and non-shared variables in OMP PARALLEL code * A stack parent token in worker threads' stacks so that you can easily find their parent's stack. * The ability to plant breakpoints throughout the OpenMP code (including lines which will be executed in parallel) Note: on the IRIX6-MIPS platform, you must use the MIPSpro 7.3 compiler or later to debug OpenMP applications. ------------------- Array Data Filtering TotalView now allows you to filter scalar arrays by specifying a filter expression in the Filter: field of a variable window. Your filtering options are: * arithemetic comparision to a constant value * equal or not equal comparision to IEEE NANs, INFs, and DENORMs * within a range of values, inclusive or exclusive When you enter a filter expression, TotalView displays only the array elements that match the filter expression. ------------------- Fast Single-Stepping On the ALPHA, IRIX6-MIPS, and RS6000 platforms, TotalView now implements fast single-stepping of one-line statements that contain loops and conditions. This feature speeds up single-stepping in all of the languages TotalView supports, but is most useful for stepping F90 array assignment statements. ------------------- Compiled Expressions for the IRIX6-MIPS Platform TotalView now supports compiled expressions on the IRIX6-MIPS platform, in addition to the ALPHA and RS6000 platforms. ------------------- Dynamically Loaded Library Debugging Support On all platforms except SUN4, TotalView now supports automatic acquisition of shared libraries that are dynamically loaded into your program at run time. TotalView traps the dlopen() (or, on RS6000, load() and loadbind()) system routines, reads the symbols for newly loaded libraries, and gives you the option of stopping the program so that you can create breakpoints in the code. ------------------- QSW RMS 2.x Automatic Process Acquisition for the ALPHA Platform TotalView now supports the Quadrics' RMS2 resource management system, which is used on ALPHA clusters connected with the QSW switch technology. This allows TotalView to: * acquire the processes spawned by prun at startup before they have entered the main program * attach to a parallel job started by prun and acquire all of the processes in the job wherever they may be on the machine ------------------- IRIX 6.5 pthreads Package for the IRIX6-MIPS Platform TotalView now supports IRIX 6.5 pthreads. ------------------- Compiler-generated Parallelism on the IRIX6-MIPS Platform TotalView now supports compiler-generated parallelism on the IRIX6-MIPS platform using the SGI MIPSpro Automatic Parallelization Option (APO) (compiler options -pfa and -pca) or SGI MIPSpro Parallelization Directives. ------------------- Shared Memory Code for the IRIX6-MIPS Platform TotalView now supports the IRIX6-MIPS logically shared, distributed memory access (SHMEM) library. ------------------- Compiled Expression Patch Space Allocation Controls On platforms where TotalView supports compiled expressions, you may now control patch-space allocation. TotalView allows you to: * dynamically or statically allocate the patch space * control where TotalView allocates the dynamically allocated patch space * control the size of either the patch space TotalView allocates dynamically or the patch space you allocate statically ------------------------------------------------------------------------ Chapter 2: TotalView 3.9 Supported Platforms and System Requirements To run TotalView on your system, you must have the correct hardware configuration and the correct software installed. Software requirements include the correct: * operating system version * operating system patches for selected OS versions * compiler version * runtime library version Hardware requirements include the correct: * amount of physical memory * amount of disk space * amount of swap space The table below shows the tag we give supported platforms for brief reference, the official name of the platform, and the TotalView version supporting each platform. Select the correct platform name to see the system requirements. Platform tag Platform name TotalView version ALPHA Alpha Digital UNIX 3.9.0-1 IRIX6-MIPS SGI IRIX 6.x MIPS 3.9.0-1 RS6000 RS/6000 Power AIX 3.9.0-1 SUN4 SPARC SunOS 4 (Solaris 1.x) 3.9.0-1 SUN5 SPARC SunOS 5 (Solaris 2.x) 3.9.0-1 SUN5-X86 Intel X86 SunOS 5 (Solaris 2.x) 3.9.0-1 CS2 QSW CS-2 (based on SPARC Solaris 2.5.2 or 3.9.0-1 2.6) ------------------------------------------------------------------------ ALPHA--Alpha Digital UNIX To run TotalView 3.9 for Alpha Digital UNIX systems, sites must have the following: SOFTWARE REQUIREMENTS: * Digital UNIX versions V4.0, V4.0A, V4.0B, V4.0C, V4.0D, V4.0E; all versions require PATCHES (see the Digital UNIX Patch Procedures) * Digital UNIX version V4.0F, V5.0 * release X11R4, X11R5, or X11R6 of the X Window System HARDWARE REQUIREMENTS: * Any Alpha processor-based platform * 11MB of disk space * 64MB of physical memory and 100MB of swap space (per TotalView session, per 100,000-line program) ADDITIONAL REQUIREMENTS: Specific TotalView 3.9 features have the following additional requirements: * C compiler: o C compilers provided with Digital UNIX V4.0, V4.0A-F, V5.0 o FSF GNU 2.8.1 o Cygnus EGCS 1.0.2 * C++ compiler: o Digital UNIX C++ V5.7, V6.0 o KAI 3.2, 3.3 o FSF GNU 2.8.1 o Cygnus EGCS 1.0.2 * FORTRAN 77 compiler: o Digital UNIX V5.0, V5.1 * Fortran 90 compiler: o Digital UNIX V5.0, V5.1 * OpenMP Fortran compiler: o Digital UNIX V5.1 * MPICH version 1.1.0 * MPICH version 1.1.1 * Digital MPI version 1.7 * ORNL PVM version 3.3.11 (See the PVM home page at http://www.epm.ornl.gov/pvm/pvm_home.html for more information on PVM.) * Digital PVM (DPVM) version 1.4, 1.5, 1.6.1, 1.8.0 (DPVM 1.6.0 is not supported, see DPVM RESTRICTIONS below.) RESTRICTIONS: * On Digital UNIX, TotalView does not support GNU compilers configured to produce STABS debugging output; you must configure the GNU compilers to produce ECOFF debugging output. Similarly, the EGCS compiler is supported only with the "--without-stabs" configuration option selected. * DPVM version 1.6.0 does not work with TotalView. It appears that once TotalView has registered as a PVM tasker, any future pvm_spawn() operation causes DPVM 1.6.0 to hang the DPVM session. Many DPVM operations hang, including dpvm console commands. This bug is fixed in DPVM 1.6.1, which you can get by sending email to pvm@ilo.dec.com . * DPVM version 1.4 requires that TotalView load the libimc.so shared library when starting TotalView as a DPVM debugger (via the -dpvm command-line option or "totalview*DPVMDebugging: true" X resource). The DPVM 1.4 shared library that TotalView uses (/usr/shlib/libntdpvm.so)is built to require libimc.so, which is supplied with the Memory Channel software only. As a result, you cannot use TotalView to debug DPVM 1.4 applications unless you install the Memory Channel software. DPVM version 1.5 does not have this restriction. ------------------------------------------------------------------------ IRIX6-MIPS--SGI IRIX 6.x MIPS To run TotalView 3.9 for SGI IRIX 6.x MIPS systems, sites must have the following: SOFTWARE REQUIREMENTS: * IRIX versions 6.2, 6.3, 6.4, or 6.5 (see RESTRICTIONS below) * IRIX C++ Standard Execution Environment (c++_eoe); needed to support TotalView and the TotalView Debugger Server which are written in C++ * release X11R4, X11R5, or X11R6 of the X Window System HARDWARE REQUIREMENTS: * Any MIPS R4000, R4400, R4600, R5000, R8000, or R10000 processor-based platform * 20MB of disk space * 64MB of physical memory and 100MB of swap space (per TotalView session, per 100,000-line program) ADDITIONAL REQUIREMENTS: Specific TotalView 3.9 features have the following additional requirements: * C compiler: o Silicon Graphics MIPSpro 7.1 or 7.2 o FSF GNU 2.8.1 o Cygnus EGCS 1.0.2 * C++ compiler: o Silicon Graphics MIPSpro 7.1, 7.2, or 7.2.1 C++ compiler o KAI 3.2, 3.3 o FSF GNU 2.8.1 o Cygnus EGCS 1.0.2 * FORTRAN 77 compiler: o Silicon Graphics MIPSpro 7.1 or 7.2 * Fortran 90 compiler: o Silicon Graphics MIPSpro 7.2 o NOTE: Silicon Graphics MIPSpro 7.1 F90 compiler is not supported * OpenMP Fortran: o Silicon Graphics MIPSpro 7.3 (see RESTRICTIONS below) * Portland Group HPF 2.4 (see RESTRICTIONS below) * SGI MPI 3.1 or 3.2, part of the Message Passing Toolkit (MPT) release 1.2 or 1.3. (MPI 3.1 does not support message queue display, but MPI 3.2 does; see RESTRICTIONS below.) o MPT 1.3 is available from: http://www.sgi.com/Products/Evaluation o MPT 1.3 general information is available from: http://www.sgi.com/software/mpt/ * MPICH version 1.1.0 with the MPICH 1.1.0 Patch noted below. o MPICH is available from: http://www.mcs.anl.gov/mpi/mpich o Other MPICH patches can be found in: http://www.mcs.anl.gov/mpi/mpich/buglist-tbl.html * MPICH version 1.1.1 * ORNL PVM version 3.3.11 (See the PVM home page at http://www.epm.ornl.gov/pvm/pvm_home.html for more information on PVM.) RESTRICTIONS: * SGI PVM is not supported. * TotalView does not support programs that use the sproc() interface directly. However, TotalView does support the IRIX 6.2, 6.3, and 6.4 pthreads on sprocs implementation. TotalView also supports debugging compiler-generated parallelism using the SGI Automatic Parallelization Option (APO) (compiler options -pfa and -pca) or SGI Parallelization Directives. * For SGI MPI message queue display in TotalView, you must obtain the Message Passing Toolkit (MPT) release 1.3. * See Portland Group HPF 2.4 Supported Configurations below for supported HPF 2.4 runtimes. * You may have to patch your Portland Group HPF 2.4 compiler run time as described in the section titled Portland Group HPF 2.4 Compiler Patch Procedures. * Silicon Graphics MIPSpro 7.3 compiler or later is required to debug OpenMP applications. The Silicon Graphics MIPSpro 7.2.1 and earlier compilers do not generated the correct debug information for TotalView to debug OpenMP applications. MPICH 1.1.0 Patch for IRIX6-MIPS Users If you are using MPICH 1.1.0 on the IRIX6-MIPS platform, then the standard MPICH patch 2534 is not sufficient. Apply the following patch instead. See the README file listed below for directions on how to patch your MPICH 1.1.0 sources. You'll need the following two files from ftp://ftp.etnus.com/support/toolworks/mpich/ : ftp://ftp.etnus.com/support/toolworks/mpich/README ftp://ftp.etnus.com/support/toolworks/mpich/mpich-1.1.0-update.tar If you do not apply the above patch, TotalView can't display the MPICH message queues. ------------------------------------------------------------------------ RS6000--RS/6000 Power AIX To run TotalView 3.9 for RS/6000 Power AIX systems, sites must have the following: SOFTWARE REQUIREMENTS: * AIX version 4.1, 4.2, 4.3, 4.3.1, or 4.3.2 (see RESTRICTIONS below) * IBM C Set + + for AIX Application Runtime (5765-421) Version 3.1; needed to support TotalView and the TotalView Debugger Server which are written in C++ * release X11R4, X11R5, or X11R6 of the X Window System HARDWARE REQUIREMENTS: * any RS/6000 or RS/6000SP * 15MB of disk space * 32MB of physical memory and 50MB of swap space (per TotalView session, per 100,000-line program) ADDITIONAL REQUIREMENTS: Specific TotalView 3.9 features have the following additional requirements: * C compiler: o IBM xlc 3.1.3.3, 3.6.0.0 o FSF GNU 2.8.1 o Cygnus EGCS 1.0.2 * C++ compiler: o IBM xlC 3.1.3.2, 3.6.0.0 o FSF GNU 2.8.1 o KAI 3.2, 3.3 o Cygnus EGCS 1.0.2 * FORTRAN 77 compiler: o IBM xlf 3.2.4.0, 5.1.0.0 * Fortran 90 compiler: o IBM xlf90 3.2.4.0, 5.1.0.0 * Portland Group HPF 2.4 (see RESTRICTIONS below) * Parallel Environment for AIX version 2.2, 2.3, and 2.4 (see RESTRICTIONS below) * MPICH version 1.1.0 * MPICH version 1.1.1 * ORNL PVM version 3.3.11 (See the PVM home page at http://www.epm.ornl.gov/pvm/pvm_home.html for more information on PVM.) RESTRICTIONS: * IBM PVME is not supported. * On AIX 4.3.1 and 4.3.2 TotalView supports debugging pthread programs running in pthread-compatibility mode or pthreads in system contention scope, that is, each pthread is bound to a kernel thread (1:1 thread scheduling). TotalView does not support process contention scope, that is, multiple pthreads scheduled in user mode (M:N thread scheduling). For more information, please read Known problems on RS/6000 platforms. * To use the Message Queue Display (MQD) feature of TotalView with applications using IBM MPI Parallel Environment (PE), please note the following: o You must have the PE version 2.3 or 2.4, and you must be using the threaded version of the MPI library. o If you are using version 2.4.0.0, you need to apply an IBM-provided patch or you need to modify your TotalView distribution manually to use the MQD feature. See IBM PE Message Queue Display below for more information. o TotalView does support automatic process acquisition (but not MQD) both for applications built with PE version 2.2 and for applications built with non-threaded PE versions 2.3 and 2.4. * See Portland Group HPF 2.4 Supported Configurations below for supported HPF 2.4 run times. * You may have to patch your Portland Group HPF 2.4 compiler run time as described in the section titled Portland Group HPF 2.4 Compiler Patch Procedures. ------------------------------------------------------------------------ SUN4--Sparc SunOS 4 (Solaris 1.x) To run TotalView 3.9 for Sparc SunOS 4 (Solaris 1.x) systems, sites must have the following: SOFTWARE REQUIREMENTS: * SunOS version 4.1.1, 4.1.2, 4.1.3, or 4.1.4 * release X11R4, X11R5, or X11R6 of the X Window System HARDWARE REQUIREMENTS: * Any SPARC processor-based platform * 10MB of disk space * 16MB of physical memory and 50MB of swap space (per TotalView session, per 100,000-line program) ADDITIONAL REQUIREMENTS: Specific TotalView 3.9 features have the following additional requirements: * C compiler: o SunPro SC3.0.1 o Apogee 3.1, 4.010 o FSF GNU 2.8.1 o Cygnus EGCS 1.0.2 * C++ compiler: o SunPro SC3.0.1 o Apogee 3.1, 4.010 * FORTRAN 77: o SunPro SC3.0.1 * MPICH version 1.1.0 * MPICH version 1.1.1 * ORNL PVM version 3.3.11 (See the PVM home page at http://www.epm.ornl.gov/pvm/pvm_home.html for more information on PVM.) RESTRICTIONS: * There are no supported F90 compilers on SunOS 4.1.x. ------------------------------------------------------------------------ SUN5--Sparc SunOS 5 (Solaris 2.x) To run TotalView 3.9 for Sparc SunOS 5 (Solaris 2.x) systems, sites must have the following: SOFTWARE REQUIREMENTS: * SunOS version 5.5, 5.5.1, or 5.6 (Solaris 2.5, 2.5.1, or 2.6) * release X11R4, X11R5, or X11R6 of the X Window System HARDWARE REQUIREMENTS: * Any SPARC processor-based platform * 17MB of disk space * 16MB of physical memory and 50MB of swap space (per TotalView session, per 100,000-line program) ADDITIONAL REQUIREMENTS: Specific TotalView 3.9 features have the following additional requirements: * C compiler: o Workshop compiler 4.2 o SunPro SC3.0.1 o Apogee 3.1, 4.010 o FSF GNU 2.8.1 o Cygnus EGCS 1.0.2 * C++ compiler: o Workshop compiler 4.2 o SunPro SC3.0.1 o KAI 3.2, 3.3 o Apogee 3.1, 4.010 o FSF GNU 2.8.1 o Cygnus EGCS 1.0.2 * FORTRAN 77 compiler: o Workshop compiler 4.2 o SunPro SC3.0.1 * Fortran 90 compiler: o Workshop compiler 4.2 * Portland Group HPF 2.4 (see RESTRICTIONS below) * MPICH version 1.1.0 * MPICH version 1.1.1 * ORNL PVM version 3.3.11 (See the PVM home page at http://www.epm.ornl.gov/pvm/pvm_home.html for more information on PVM.) RESTRICTIONS: * The GNU-based compilers FSF GNU 2.8.1 and Cygnus EGCS 1.0.2 must be configured to generate STABS debugging output (use the "--with-stabs" compiler configuration option). DWARF output from GNU-based compilers is not supported. * Sun's MPI implementation is not supported. * The Sun Workshop Compilers 5.0 are not supported. * See Portland Group HPF 2.4 Supported Configurations below for supported HPF 2.4 runtimes. * You may have to patch your Portland Group HPF 2.4 compiler runtime as described in the section titled Portland Group HPF 2.4 Compiler Patch Procedures. ------------------------------------------------------------------------ SUN5-X86--Intel X86 SunOS 5 (Solaris 2.x) To run TotalView 3.9 for Intel X86 SunOS 5 (Solaris 2.x) systems, sites must have the following: SOFTWARE REQUIREMENTS: * SunOS version 5.6 (Solaris 2.6) * release X11R4, X11R5, or X11R6 of the X Window System HARDWARE REQUIREMENTS: * Any Intel X86 processor-based platform supported by Solaris 2.x * 17MB of disk space * 16MB of physical memory and 50MB of swap space (per TotalView session, per 100,000-line program) ADDITIONAL REQUIREMENTS: Specific TotalView 3.9 features have the following additional requirements: * C compiler: o Workshop compiler 4.2 o FSF GNU 2.8.1 o Cygnus EGCS 1.0.2 * C++ compiler: o Workshop compiler 4.2 o FSF GNU 2.8.1 o Cygnus EGCS 1.0.2 * FORTRAN 77 compiler: o Workshop compiler 4.2 * MPICH version 1.1.0 * MPICH version 1.1.1 * ORNL PVM version 3.3.11 (See the PVM home page at http://www.epm.ornl.gov/pvm/pvm_home.html for more information on PVM.) RESTRICTIONS: * The GNU-based compilers FSF GNU 2.8.1 and Cygnus EGCS 1.0.2 must be configured to generate STABS debugging output (use the "--with-stabs" compiler configuration option). DWARF output from GNU-based compilers is not supported. * There are no supported F90 compilers on Intel X86 SunOS 5. * Sun MPI is not supported. * The Sun Workshop Compilers 5.0 are not supported. ------------------------------------------------------------------------ CS2--QSW CS-2 (based on Sparc Solaris 2.5.1 or 2.6) To run TotalView 3.9 for QSW CS-2 (based on Sparc Solaris 2.5.1 or 2.6) systems, sites must have the following: SOFTWARE REQUIREMENTS: * QSW-specific Solaris 2.5.1 or 2.6 * release X11R4, X11R5, or X11R6 of the X Window System HARDWARE REQUIREMENTS: * Any SPARC processor-based CS-2 platform * 17MB of disk space * 16MB of physical memory and 50MB of swap space (per TotalView session, per 100,000-line program) ADDITIONAL REQUIREMENTS: Specific TotalView 3.9 features have the following additional requirements: * Same compilers as the SUN5 platform * CS-2 RMS 1.5.3 parallel environment RESTRICTIONS: * The GNU-based compilers FSF GNU 2.8.1 and Cygnus EGCS 1.0.2 must be configured to generate STABS debugging output (use the "--with-stabs" compiler configuration option). DWARF output from GNU-based compilers is not supported. * RMS 2.x is not supported. ------------------------------------------------------------------------ Other Platforms TotalView is available for a variety of platforms and you can use it to debug programs on the native platform or on remote systems, such as parallel processors, supercomputers, or digital signal processor boards. If TotalView is not yet available for your system configuration, please contact Etnus, Inc. about porting TotalView to suit your needs. ------------------------------------------------------------------------ EXTREMELY IMPORTANT: Digital UNIX Patch Procedures ************************************************** NOTICE TO ALL DIGITAL UNIX TOTALVIEW CUSTOMERS ************************************************** All versions of TotalView 3.4, 3.7, 3.8 and 3.9 for Digital UNIX versions V4.0, V4.0A, V4.0B, V4.0C, V4.0D, and V4.0E require that you patch the Digital UNIX operating system before running TotalView. You must apply the entire patch kit specified; partial patch kits are not supported. This describes the procedures you must follow to patch your Digital UNIX V4.0, V4.0A, V4.0B, V4.0C, V4.0D, and V4.0E systems. Failure to patch your Digital UNIX operating system before running TotalView will result in system crashes, system hangs, hung and unkillable processes, and TotalView malfunctions. Do not run TotalView without first patching your Digital UNIX V4.0-based system! Note: The patch procedure requires that you have "root" user privileges on your system(s). Patch files include an operating system version, a patch number and a patch date. For example, the patch file named "duv40bas00007-19980514.tar " is a patch file for Digital UNIX 4.0B, with a patch number of "00007" representing the patch level, and a patch date of "19980514". No matter what patch level you actually install, the patch contains all the prior patches up to and including the current patch. Install the latest patch to get the correct version of the operating system and runtime libraries required to run TotalView. Follow the step-by-step directions below to download the software and prepare to install the patch kit. Retrieving and Applying the Digital UNIX V4.0x Aggregate ECO Step 1: Retrieve the DUNIX V4.0 Aggregate ECO files and save them to your system using the following procedure: * Visit the following URL with your Web browser. ftp://ftp.service.digital.com/public/dunix * Select the directory name that matches the version of the Digital UNIX operating system you need to patch: v4.0/ v4.0a/ v4.0b/ v4.0c/ v4.0d/ v4.0e/ * In that directory, there are some files that match the pattern: duvas-. where: is 40, 40a, 40b, 40c, 40d, or 40e is a 5-digit number with leading zeroes, is in the format yyyymmdd is CHKSUM, CONTENTS, README, pdf (or ps), or tar * Save the files to your system. If there are no files that match that pattern, then there are no Aggregate ECO patch files for that version of Digital UNIX. * The directions for applying a patch are in the files: PatchInstallGuide.htm PatchInstallGuide.pdf Save the .pdf patch installation procedures to your system, or use your Web browser to read the HTML version. Step 2: Print the patch procedure documentation contained in the ".README" and ".pdf" (or ".ps") files, and the "PatchInstallGuide" .htm or .pdf file. Step 3: Follow the directions contained in the patch procedure documentation and install this patch on your Digital UNIX V4.0x system(s). Perform this procedure in single-user mode, rebuild your kernel, and reboot your system. Minimum Patch Level for 4.0D Systems If you are patching a Digital UNIX 4.0D system, use patch kit "DUV40DAS00003-19990208" or later. Earlier patch kits do not contain all of the required Digital UNIX 4.0D patches. Minimum Patch Level for 4.0E Systems If you are patching a Digital UNIX 4.0E system, use patch kit "DUV40EAS00001-19990202" or later. GETTING HELP WITH THE PATCH PROCEDURES If you need help following these procedures or have any questions, follow the directions for Reporting Problems. ------------------------------------------------------------------------ Apogee 4.0 Compiler Patch Procedures The Apogee 4.0 compilers require a patch that brings the compiler version up to 4.010 (or later). You must obtain this patch directly from Apogee Software Inc. To get the Apogee 4.0 compiler patches for the SPARC, visit the Apogee ftp site at ftp://ftp.apogee.com/pub/users/apogee/patches/SPARC/ and read the README file. ------------------------------------------------------------------------ Portland Group HPF 2.4 Supported Configurations The following table lists the supported Portland Group HPF 2.4 compiler runtime configurations by platform. Platform Name MPICH IBM PE RPM SMP SGI IRIX 6.x MIPS OK N/A OK (May need OK (May need patch) patch) RS/6000 Power AIX N/T OK OK (May need N/S patch) Sparc SunOS 5 (Solaris OK (May need OK (May need 2.x) OK N/A patch) patch) Key: * OK--Off-the-shelf compiler works OK with TotalView for that runtime library * OK (May need Patch)--Off-the-shelf compiler runtime library may need patching, but once patched, works OK with TotalView * N/A--Compiler runtime library is not applicable for that platform * N/S--Not supported by Portland Group * N/T--This configuration was not tested with TotalView Portland Group HPF 2.4 Compiler Patch Procedures Some of the Portland Group HPF 2.4 distribution libraries for the RS/6000 Power AIX, Sparc SunOS 5 (Solaris 2.x), and SGI IRIX 6.x MIPS platforms may require a patch or a new installation to enable debugging HPF programs using TotalView. TotalView depends on a library module called tvdebug.o. This module is required to have symbol information that is used by TotalView. It is required that PGI build the tvdebug.o module with debugging information enabled. If TotalView issues the following message when debugging your Portland Group HPF application: "MPICH library contains no type definition for struct MPIR_PROCDESC." then, it is likely that the Portland Group HPF library you are linking with has a copy of the tvdebug.o module that was not compiled with debugging information enabled. To check for this situation, you can extract a copy of the tvdebug.o module from the libraries in your Portland Group HPF installation and check for the missing symbol. In the directions below, $INSTALLDIR must be set to the directory where your Portland Group HPF compiler was installed. $LIBRARY is either libpghpf_rpm.a or libpghpf_smp.a, depending on whether you are using RPM or SMP run time support. To check for the MPIR_PROCDESC symbol in your libraries, follow the platform-dependent directions below. For the SGI IRIX 6.x MIPS platform: 1. Issue the following commands: ar -xf $INSTALLDIR/sgi/lib-64/$LIBRARY tvdebug.o dwarfdump -a tvdebug.o | grep MPIR_PROCDESC 2. If the MPIR_PROCDESC symbol is not found, you should download a new copy of the Portland Group HPF 2.4 compiler and reinstall. The latest 2.4 release appears to have been fixed to correct this problem, therefore we have not provided a patch for the SGI IRIX 6.x MIPS platform. For RS/6000 Power AIX or Sparc SunOS 5 (Solaris 2.x) platforms: 1. Depending on your platform, issue the following commands: RS/6000 Power AIX: ar -xf $INSTALLDIR/rs6000/lib/$LIBRARY tvdebug.o dump -vtd tvdebug.o | grep MPIR_PROCDESC Sparc SunOS 5 (Solaris 2.x): ar -xf $INSTALLDIR/solaris/lib/$LIBRARY tvdebug.o dump -vsn .stabstr tvdebug.o | grep MPIR_PROCDESC 2. If the MPIR_PROCDESC symbol is not found, you will need to patch your libraries. You need this patch only if you are using the HPF rpm or smp run time support. The four libraries that require patching are: * libpghpf_rpm.a * libpghpf_rpm_p.a * libpghpf_smp.a * libpghpf_smp_p.a 3. All libraries require a new version of the module "tvdebug.o". You can download and install fixed versions of these modules from our support site. Download the following files and save them to your system: * ftp://ftp.etnus.com/support/toolworks/pgi/PGI_HPF_2.4_patch.tar * ftp://ftp.etnus.com/support/toolworks/pgi/PGI_HPF_2.4_patch.README 4. Follow the directions contained in the "PGI_HPF_2.4_patch.README" file to install the "tvdebug.o" module in these libraries. ------------------------------------------------------------------------ IBM PE Message Queue Display TotalView supports the Message Queue Display (MQD) feature when used with the threaded version of the IBM MPI libraries that are part of the IBM Parallel Environment (PE). PE version 2.2 and the non-threaded PE 2.3 and 2.4 libraries can't provide TotalView with the necessary information for the MQD feature, however, Automatic Process Acquisition (APA) is supported in PE 2.2, 2.3, and 2.4. The following table summarizes TotalView's IBM PE support: IBM PE version APA Support? MQD Support 2.2 Yes No 2.3 Yes Threaded MPI only 2.4 Yes Threaded MPI only Message Queue Display Debugging Dynamic Library Each version of the IBM PE library requires a separate MQD debugging dynamic library for use with TotalView. This section explains how TotalView chooses the correct MQD debugging dynamic library. When TotalView recognizes that it is dealing with an IBM MPI code, it searches for a MQD dynamic library to load capable of handling the appropriate IBM MPI implementation. The IBM MPI library declares its debugging compatibility version in an integer global variable named "mpi_debug_version". The following table shows the current set of values: "mpi_debug_version" value PE version number 0 2.3 1 2.4 When looking for the MQD debugging dynamic library, TotalView 1. looks for a library named libtvibmmpi.so; failing that 2. looks for a library named libtvibmmpi-.so where is the integer value of the mpi_debug_version variable. By default the MQD debugging dynamic libraries provided with your TotalView distribution are named: * libtvibmmpi-poe-2.3.so * libtvibmmpi-poe-2.4.so The TotalView distribution has the appropriate symbolic links: * libtvibmmpi-0.so -> libtvibmmpi-poe-2.3.so * libtvibmmpi-1.so -> libtvibmmpi-poe-2.4.so This ensures that the correct MQD debugging dynamic library is loaded for both POE 2.3 and POE 2.4. PE 2.4 MQD Configuration Unfortunately, an error in the IBM PE 2.4.0.0 libraries causes the mpi_debug_version variable to have the value 0 (instead of the correct value 1). You may correct this problem in one of two ways: * apply PTF U462081 (see below) or * patch your TotalView installation manually (see below) But first, verify that you need the fix. Verifying You Need a Fix If you have POE 2.4.0.0, you may need to apply an IBM-provided PTF or to alter your TotalView installation explicitly so that the MQD debugging dynamic library symbolic links point to the correct version of the library. Here is how to check whether or not you need to modify your TotalView installation: 1. Verify the version of PE in use on all your nodes. Use the "lslpp -l ppe.poe" command to inspect the version of PE you have installed on all of your nodes. For example: $ lslpp -l ppe.poe Fileset Level State Description ---------------------------------------------------------------------------- Path: /usr/lib/objrepos ppe.poe 2.4.0.0 COMMITTED poe Parallel Operating Environment Path: /etc/objrepos ppe.poe 2.4.0.0 COMMITTED poe Parallel Operating Environment You may also use the poe command to check multiple nodes on your SP2, for example: $ poe lslpp -l ppe.poe -procs 10 -rmpool 0 2. Inspect the value of mpi_debug_version on all your nodes. Compile and run the following program: /* Test program to check mpi_debug_version. Compile: mpcc_r -g -o mqdvers mqdvers.c Run: mqdvers -procs -rmpool

mqdvers -procs -hfile */ #include #include extern int mpi_debug_version; main(int arg, char **argv) { MPI_Init (&arg,&argv); printf ("mpi_debug_version == %d\n", mpi_debug_version); MPI_Finalize(); } It produces output similar to: $ mqdvers -procs 2 -rmpool 0 0:mpi_debug_version == 0 1:mpi_debug_version == 0 3. If your version of PE is "ppe.poe 2.4.0.0" and the value of the variable is "mpi_debug_version == 0", then you must apply PTF U462081 or modify your TotalView installation if you want to use the TotalView MQD feature. We strongly recommend that you apply the PTF. Applying PTF U462081 Patches for POE 2.4 are available through the normal AIX FixDist WEB site as follows: 1. Point your WEB browser to http://service.software.ibm.com/support/rs6000/. 2. Click on the "Download" link. 3. Click on the "Software Fixes" link. 4. Click on the "AIX Fix Distribution Service" link. 5. Click on the "Search by: PTF Number" radio button. 6. Enter the PTF number "U462081" in the box and click on the "Find Fix" button. 7. Select the PTF "U462081 - ppe.poe.2.4.0.1" item from the list. 8. Select your version of AIX. 9. Click on the "Get Fix Package" button. The following list of fix packages appears: Filesets needed for selected item Information file Byte size ppe.poe.2.4.0.2 README 4539392 10. Using your browser, download the file and put it into a directory, for example, "/tmp/xlfpatches". The file is named: ppe.poe.2.4.0.2.bff 11. Use the AIX "smit" tool to install the patch from the directory. If you apply this PTF, you do not need to patch your TotalView installation manually. Patching Your TotalView Installation Manually We strongly recommend that you apply the PTF (above) instead of patching your installation. If you patch your TotalView installation for use with an incorrect PE 2.4.0.0, then that installation will no longer support MQD when you use POE 2.3. If applying the PTF is not an option for you, however, and you are using only PE 2.4, you or your system administrator must do the following: $ su Password: # cd /totalview.//shlib # rm libtvibmmpi-0.so # ln -s libtvibmmpi-poe-2.4.so libtvibmmpi-0.so Consult the TotalView Installation Guide for more information on your TotalView installation. ------------------------------------------------------------------------ License Management Issues The Etnus License Management scheme for TotalView 3.7/3.8/3.9 and TimeScan 3.0 is new and requires some planning if you want to mix: * Etnus license management with other software managed by FLEXlm * Etnus license management with older versions of Etnus products Mixing Etnus license management with other software managed by FLEXlm We recommend that initially you do not combine Etnus licenses with those of other third party software managed by FLEXlm. At first, it is easiest to keep separate license manager daemons for Etnus licenses and licenses of other third party software managed by FLEXlm. After you know that your Etnus license works, see the latest FLEXlm documentation for guidance if you want to run a single FLEXlm license manager daemon. Use the Etnus installation procedures described in the appropriate Etnus Installation Guide to install the Etnus FLEXlm license management software. Etnus licenses must be served by the Etnus license manager daemon or the latest FLEXlm license manager daemon. The TCP/IP port number used for the Etnus license manager daemon must be unique and not in use elsewhere. Find port numbers used by other FLEXlm license managers in their license.dat files. Mixing Etnus license management with older versions of Etnus products TotalView 3.7/3.8/3.9 and TimeScan 3.0 licenses can not be combined with those of older versions of Etnus products. The Etnus licenses must be served by separate Etnus license manager daemons for best results. Use the Etnus installation procedures described in the appropriate Etnus Iinstallation Guides to install the appropriate FLEXlm license management software. TotalView 3.7/3.8/3.9 and TimeScan 3.0 licenses must be served with the license manager provided in their distributions. Older versions of Etnus products must be served by the license manager provided in their distributions. To run TotalView 3.7/3.8/3.9 or TimeScan 3.0 with older versions of Etnus products served by the same license manager server machine, you must: * maintain separate license.dat files * run separate FLEXlm license manager daemons (lmgrd) * ensure that FLEXlm license manager daemons are assigned unique TCP/IP port numbers (you assign the port number when running the Etnus Configure_License script.) The old and the new FLEXlms install in different directories, so one does not overwrite the other. In addition, a user who wants to use both new and old versions of Etnus products must include the full pathnames of both license.dat files in his LM_LICENSE_FILE environment variable. For example: % setenv LM_LICENSE_FILE /usr/totalview/flexlm/license.dat:/usr/toolworks/flexlm-5.0/license.dat To verify your FLEXlm installations: 1. Start both old and new FLEXlm license manager daemons (lmgrd). 2. Set your LM_LICENSE_FILE environment variable appropriately, as above. 3. Run the lmstat command in the new product's FLEXlm directory: % /flexlm-5.0//bin/lmstat In the FLEXlm status output, look for both license servers UP and both new (toolworks) and old (bbnst) Etnus vendor daemons UP. 4. Once the license managers are both running, you can run TimeScan and TotalView to verify their installations: % timescan % totalview If you encounter installation problems, please review your procedure and also refer to the Troubleshooting section of the appropriate Etnus User's Guide. ------------------------------------------------------------------------ Chapter 3: TotalView News * Changes from TotalView 3.9.0-0 to TotalView 3.9.0-1 * TotalView Debugger Server -server option controls Changes from TotalView 3.9.0-0 to TotalView 3.9.0-1: * TotalView 3.9.0-1 now supports KAI C++ version 3.4. * Bug fix: Some problems that arose when debugging pthread programs using system contention scope on the Alpha Digital UNIX platform have been fixed. * Bug fix: When a KAI C++ program on the SPARC SunOS 5 (Solaris 2.x) platform was built entirely from a single file, TotalView would not show you the source file for the program. * Bug fix: On the SGI IRIX 6.x MIPS platform, if the user had set the LD_LIBRARYN32_PATH variable, TotalView would not be able to find the library it needs to display MPICH message queues. * Bug fix: On the RS/6000 Power AIX platform, if a Fortran program, subroutine or function used local arrays with variable bounds, some local variables may have had incorrect addresses. * Bug fix: If you tried to filter an HPF distributed array, TotalView would get an internal error. * Bug fix: In starting up on certain Fortran programs on the SGI IRIX 6.x MIPS platform, TotalView would get an internal error. * Bug fix: On the RS/6000 Power AIX platform, certain Fortran modules would appear to have no contents. TotalView Debugger Server -server option controls The use of the -server option to the TotalView Debugger Server could cause a security problem, as described in the TotalView User's Guide. TotalView 3.9.0-1 now gives system administrators more control over the use of the -server option. The -server option to the TotalView debugger server has been disabled by default in TotalView version 3.9.0-1. Normal use of TotalView should not require the -server option, so this change will not impact most users. In case your site has a requirement for the -server option, it may be reenabled by creating a file named tvdsvr.conf in the /etc directory. This file must be owned by user id 0 (root). ------------------------------------------------------------------------ Chapter 4: Problems and Reports Known Problems The following sections list the problems that have been found in the current release of TotalView. * Problems on all platforms * Problems on Alpha Digital UNIX platforms * Problems on IRIX6-MIPS platforms * Problems on RS/6000 Power AIX platforms * Problems on Sparc SunOS 4 (Solaris 1.x) * Problems on Sparc SunOS 5 (Solaris 2.x) and QSW CS-2 platforms * Problems on Intel X86 SunOS 5 (Solaris 2.x) platforms * Problems in the Portland Group HPF 2.4 Compiler Problems on All Platforms All platforms have the following problems: 1. C++ Exceptions: TotalView does not have full support for C++ exceptions. Single-stepping over code that will throw an exception is problematic and often results in the process running away. To help with this situation, TotalView has been modified to detect when an exception throw is going to occur while single-stepping. By default, TotalView brings up a dialog box to ask if you wish to stop the process. Answering "No" continues the process. Be aware that if you are stepping within the "try" block, your process may run away. Answering "Yes" stops the process upon entry into the system runtime routine that issues the throw. This is a temporary solution and full C++ exception handling may be provided in a future TotalView release. This mechanism is available for TotalView 3.9 for all the supported C++ compilers on the supported platforms for SGI IRIX 6.x, Power AIX, Alpha Digital UNIX, and Sparc SunOS 5 (Solaris 2.x) platforms. (See Supported Platforms and System Requirements.) The following user interface controls are available for turning this dialog box on and off: o X resource: totalview*warnStepThrow: { true | false } If you do not specify this X resource, the default value is true. o Command-line option: -warnStepThrow={ true | false } o Menu command item: Warn stepping exception throw command is a new sub-menu item of the Go/Halt/Step/Next/Hold menu. This lets you toggle the warning on and off. If this option is turned off, TotalView doesn't catch C++ exception throws during single-step operations. This may cause the single-step operation to lose control on the process and cause it to run away. 2. The following problem applies only to Fortran arrays whose size changes, and from which have used the Variable (v) command from the Function/File/Variable you are displaying only a single element, either because you have dived, or because you menu with an array index. When a data pane displays a single element of a Fortran array that has runtime bounds (i.e., assumed shape, assumed size, allocatable, or a pointer), and the actual bounds change, the value displayed in the data pane applies to the wrong element in the reshaped array. To overcome this problem, display the whole array, then dive to the element that you want to see. Alternately, if you select the specific element of interest by setting the slice expression rather than by diving, the correct element always displays, even if the array changes shape. 3. If an evaluation point executes a "goto" statement or an assembly language transfer of control instruction, and you use the step or next command at the line where the evaluation point is enabled, TotalView continues the program and the step or next command does not complete. To regain control, type ^C into the program window. 4. When FLEXlm reads your license.dat file, it hunts for multiprocessor feature lines when you start a debugging session with more than 2 processors. The messages: (toolworks) UNSUPPORTED: "TV/-/MP/" which may appear in your license.log, may be safely ignored. 5. There are problems with the fvwm version 1 window manager. Some users have reported that TotalView triggers bugs in version 1.22d of the fvwm window manager (and presumably earlier versions, too). However, The last release of fvwm version 1 (release 1.24r) is believed to work correctly with TotalView. Therefore, if you are using the fvwm version 1 window manager, we recommend that you ensure that you are using version 1.24r. We have not tested any later versions. You can find full details on fvwm at http://fvwm.math.uh.edu/. 6. The use of the "Flush Pending Evaluation" command of the expression window may corrupt the target process. When the following three conditions hold: o you call a function from the expression window o the process stops at a breakpoint inside that function call o you use the "Flush Pending Evaluation" command in the expression window to abort the execution of the expression TotalView shows the thread in an inconsistent state: the target threads is still at the breakpoint inside the function, but the stack backtrace shows it where the expression was invoked. As a result, TotalView may: (a) correctly show the source line where the process really is (from whatever line you invoked the expression); or (b) it may mistakenly show the line of the breakpoint in the function. Further, if you try to continue the target process, one of the following will happen: o on SUN5-X86, the target process crashes; o on ALPHA, RS6000, and IRIX6-MIPS, the target process hangs; o on SUN4 and SUN5, the target process continues. To avoid a crash or a hang, toggle the breakpoint (disable then reenable the breakpoint) TotalView is reporting as current before continuing the process. But, on SUN4 and SUN5 (and on all other platforms after you've toggled the breakpoint appropriately), if the process was sitting at a breakpoint when you called the function from the expression window, TotalView immediately hits that breakpoint again. 7. TotalView does not support attaching to Portland Group HPF jobs. If you attempt to attach to Portland Group HPF jobs, you may not see all of the processes that the job is composed of, and you may not be able to display distributed variables. Problems on Alpha Digital UNIX platforms The following are known problems with this platform: 1. Thread debugging problems on all versions of Digital UNIX: Because of a bug in the ALPHA thread debugging support on Digital UNIX, the low-level thread hold operation can allow a held thread to run. TotalView uses the low-level thread hold operation to prevent a thread from running when single-stepping another thread. For example, assume your program has two threads, thread A and thread B. Assume that thread A is stopped at a breakpoint, and thread B is stopped elsewhere but not at a breakpoint. To continue the process (that is, both threads), TotalView must step thread A off the breakpoint. To do this, TotalView holds thread B. Then it unplants the breakpoint where thread A is stopped, sets a temporary breakpoint at the next instruction, and continues the process. Because of the hold thread bug, both thread A and thread B may run even though thread B is held. This means that thread B may miss the real breakpoint and hit the temporary breakpoint instead. The following behaviors can indicate the presence of this bug: * Threads miss breakpoints. * Threads do not evaluate interpreted breakpoints. * You see undeserved process stops, that is, the process may stop unexpectedly after evaluating an interpreted breakpoint. * During single-stepping operations, threads other than the thread being stepped run. 2. If you compile Fortran 90 files with include or #include statements on the Digital Alpha platform using the Digital Fortran V5.0 compiler (or earlier), TotalView may show line numbers following the include statement at incorrect lines. This problem is fixed by the Fortran V5.1 compiler. 3. The GNU compiler does not output debugging information for members of anonymous unions that are enclosed in other aggregates when using the ECOFF format on the Digital Alpha. As a result, if you are debugging in such an environment, you will not see such members if you use TotalView to look at a data structure that contains them. Furthermore, the debugging information for the offsets of aggregate members that follow the anonymous union is output incorrectly, so these members will be displayed with incorrect values. Problems on IRIX6-MIPS Platforms The following are known problems with this platform: 1. When you compile Fortran 90 programs on IRIX using the MIPSpro compilers, if source files contain #include statements and are compiled with the -cpp switch, TotalView generates incorrect line numbers. To avoid this problem, use the standard Fortran "include" statement (without the -cpp switch). 2. Some Fortran arrays with runtime bounds are displayed improperly. Because of a limitation in the debug output produced by the SGI Fortran 90 compilers, this happens for arrays which are the targets of pointers embedded in a user-defined type which has itself been arrayed. Consider the following code: type array_ptr real, dimension (:), pointer :: ap end type array_ptr type (array_ptr), allocatable, dimension (:) :: arrays allocate (arrays(20)) do i = 1,20 allocate (arrays(i)%ap(i)) end do TotalView reports the bounds of the elements arrays%ap incorrectly. Unfortunately, there is nothing we can do in TotalView to overcome the fact that the compiler has generated invalid debug information for the runtime bounds for these elements. This problem should be fixed in the MIPSpro F90 compiler version 7.3 Beta 2 and later for TotalView 3.9 and later. 3. The single-step commands sometimes step into system routines. 4. TotalView occasionally complains about not being able to find the source code for system routines (such as printf). 5. Access to F90 up-level variables does not work in the eval system. Because of SGI F90 7.2.1 and earlier compiler bugs, access to F90 up-level variables does not work from EVAL expressions. Those variables are correctly located and displayed in data panes, however. This problem should be fixed in the MIPSpro F90 compiler version 7.3 Beta 1 and later for TotalView 3.9 and later. 6. F90 pointer variables are not correctly identified as pointers because of incomplete debugging information generated by the compilers. TotalView displays the target data correctly, however. This problem should be fixed in the MIPSpro F90 compiler version 7.3 Beta 2 and later for TotalView 3.9 and later. 7. Because of SGI 7.1 C++ compiler bugs, when that compiler is generating debugging information, TotalView shows multiple instances of virtual base classes. Normally only one instance is correct, which is the one that is of type pointer to the base class. 8. Because of SGI 7.2 F90 compiler bugs, when that compiler is generating debugging information, TotalView (and other debuggers) do not show the correct lower bound and element count for allocatable arrays in modules and pointers in common blocks. This bug has been fixed in the SGI 7.2.1 F90 compiler. 9. Because of SGI 7.2.1 F90 compiler bugs, when that compiler is generating debugging information, TotalView shows the target of Cray pointers with unlimited bounds as having an upper bound of 1. Consider the following code: subroutine test (ixx, n) common /sf/ iptr pointer (iptr, ita(*)) ... etc ... end In this example, the compiler generates debug information for "ita" that indicates it has an upper bound of 1. This is incorrect because it has an unlimited upper bound. 10. Because of SGI 7.2.1 F90 compiler bugs, when that compiler is generating debugging information, TotalView can not show the target of a formal parameter Cray pointer. Consider the following code: subroutine rex (rp) pointer (rp, p(8)) p(2) = 6. P(5) = 3. write (*,*) "Should be 6,3 - ",p(2), p(5) return end In this example, the compiler generates debugging information for "p" without any addressing information. This problem should be fixed in the MIPSpro F90 compiler version 7.3 Beta 1 and later for TotalView 3.9 and later. 11. Because of a compiler bug in the SGI 7.2 and 7.2.1 compilers, bad template type names may be generated for certain template instantiations. This problem is fixed by "Patch 3492: MIPSpro 7.2.1 C++ front-end rollup #4," which is available at the SGI Support Web Site. 12. IRIX KCC code: TotalView fails to put the original file name (before preprocessing) into the symbol table. This prevents you from asking for the file by name until TotalView has processed all the symbols for that file. If you use the --keep_gen_c option to the KCC compiler, you can use the TotalView command "f" xxx.int.c (where your original source file was xxx.C) to force full symbol processing of that file, after which you'll be able to do "f" xxx.C. 13. TotalView does not support attaching to SHMEM jobs. If you attempt to attach to SHMEM jobs, you may not see all of the processes that the job is composed of, and the process leader may not be properly identified, which may cause hangs. Problems on RS/6000 platforms The RS/6000 platform has the following known problems: 1. You may experience some problems when debugging multithreaded programs, because of limitations in the ptrace() operating system call. The following problems can show up while you are debugging multithreaded applications: o When a thread stops (e.g., hits a breakpoint) all the other threads stop. If any of the other threads stops while in a system call (e.g., read, sleep, select, etc.), however, ptrace() does not allow the debugger to read the thread's registers. As a result, TotalView: o cannot display the registers, including the program counter; but does display the stack pointer o cannot show you which system call is being executed o cannot single-step using the step or step-over command, but return out of function and run to selection work o cannot display the top stack frame If you have a multithreaded application which makes a lot of system calls, this might mean that most of your threads are not fully debuggable whenever one of them stops. o TotalView shows you which threads are stuck in the kernel by displaying their state as In Kernel (K). o When a thread is created or destroyed, the system does not notify the debugger of this event. As a result, the list of threads displayed by TotalView may be stale when the program is running. o If the process stops for any reason, TotalView automatically updates the thread list. You may also type Current/Update/Relatives -> Update Process Info (u) to force the thread list to update. 2. If a routine in a dynamic object is called from the expression window, and if the target routine is never called from the main program, then TotalView refuses to call the routine. 3. Code compiled with the XL Fortran for AIX compiler Versions 4.1 and 5.1 may contain incorrect section numbers for bstat (.bs) and estat (.es) symbols. TotalView detects any incorrect section numbers and generates a warning in a dialog box for the first such problem only. TotalView notes any additional incorrect section numbers on its message output only. Symptom: common blocks have invalid addresses. Patches for the 5.1 compilers are available through the normal AIX FixDist WEB site as follows: 1. Point your WEB browser to http://service.software.ibm.com/support/rs6000/ 2. Click on the "Downloads" link 3. Click on the "Software Fixes" link 4. Click on the "AIX Fix Distribution Service" link 5. Click on the "Search by: PTF Number" radio button 6. Enter the PTF number "U457231" in the box and click on the "Find Fix" button 7. Select the PTF "U457231 - xlfcmp.5.1.0.2" item from the list 8. Select your version of AIX 9. Click on the "Get Fix Package" button The following list of fix packages appears. You must download all of them: Filesets needed for selected item Information file Byte size xlfcmp.5.1.0.2 README 18824192 xlfrte.5.1.0.2 README 24093696 xlsmp.rte.1.0.0.1 README 63488 10. Using your browser, download each of the files and put them into a common directory, for example, "/tmp/xlfpatches". The three files are named: o xlfcmp.5.1.0.2.bff o xlfrte.5.1.0.2.bff o xlsmp.rte.1.1.0.1.bff 11. Use the AIX "smit" tool to install all three patches from the directory. 4. Some small C++ programs compiled with the GNU compiler on AIX may not be recognized by TotalView as having been compiled with the GNU compiler. In these cases, TotalView will not demangle various program names. To make TotalView demangle the names in these programs properly, specify -demangler=gnu on the command line. 5. On AIX systems, TotalView can hang if you have a TotalView parallel debug session running in the background in an xterm window, and you type anything in the underlying xterm window while the poe process is stopped. Type the fg command in the TotalView xterm window to clear up this condition. 6. Recent versions of AIX (4.1 or later) dump a partial core file by default. In general, a partial core dump contains only enough information to give a stack backtrace for the faulting thread. User data sections as well as some other potentially useful information are only available in a full core dump. To force a full core dump on AIX, you must set a signal flag with sigaction for the signal that caused the core dump. For example: struct sigaction act; act.sa_handler = SIG_DFL; if (bigcore) act.sa_flags = SA_FULLDUMP; else if (smallcore) act.sa_flags = SA_PARTDUMP; sigaction (SIGSEGV, &act, 0); 7. On AIX 4.3.1 and 4.3.2, TotalView supports debugging pthread programs running in pthread-compatibility mode or pthreads scheduled in "system contention scope," that is, each pthread is bound to a kernel thread (the 1:1 thread scheduling model). TotalView does not support "process contention scope," that is, multiple pthreads scheduled in user mode (M:N thread scheduling model). On AIX 4.3.1 and 4.3.2, when using TotalView to debug a program built with libpthreads.a, you must force the 1:1 model in one of two ways: o Set the environment variable AIXTHREAD_SCOPE to S. The AIX documentation states: "AIXTHREAD_SCOPE={P|S}, where P signifies process based contention scope and S signifies system based contention scope. Either "P" or "S" should be specified. The braces are provided for syntactic reasons only. The use of this environment variable impacts only those threads created with the default attribute. The default attribute is employed, when the attr parameter to pthread_create is NULL." o If you do not pass a NULL to the pthread_create function, you must change your program and rebuild it to set the contention scope of created threads to system scope. For example: pthread_attr_t attr; pthread_attr_init (&attr); pthread_attr_setscope (&attr, PTHREAD_SCOPE_SYSTEM); pthread_create (&tid, &attr, worker_function, 0); For more detailed information, see your AIX 4.3.1 and 4.3.2 documentation or use the web links to the IBM AIX 4.3 documentation site listed below: o http://www.austin.ibm.com/doc_link/en_US/a_doc_lib/aixgen/topnav/topnav.htm o http://www.austin.ibm.com/doc_link/en_US/a_doc_lib/aixprggd/genprogc/multi-thread_prg.htm o http://www.austin.ibm.com/doc_link/en_US/a_doc_lib/aixprggd/genprogc/threads_sched.htm o http://www.austin.ibm.com/doc_link/en_US/a_doc_lib/aixprggd/genprogc/understanding_threads.htm o http://www.austin.ibm.com/doc_link/en_US/a_doc_lib/aixbman/prftungd/smpsched.htm Problems on SunOS 4 platforms The SunOS 4 platform has the following known problems: 1. The Apogee 4.0 compilers on SUN4 and SUN5 require a patch to bring them up to revision level 4.010. Follow the Apogee 4.0 Compiler Patch Procedures 2. The first time that you start this version of TotalView, saved breakpoints from TotalView 3.7 or earlier may not be set correctly. If this happens, reset the breakpoints and save them. After you do this, breakpoints will come up properly. Problems on SPARC SunOS 5 and QSW CS-2 platforms The SPARC SunOS 5 and QSW CS-2 platforms have the following known problems: 1. The Apogee 4.0 compilers on SUN4 and SUN5 require a patch to bring them up to revision level 4.010. Follow the Apogee 4.0 Compiler Patch Procedures. 2. Using breakpoints in thunks may lead to unexpected results, including having the target program crash unexpectedly. A thunk is a small linkage routine that connects a subroutine call to the actual subroutines in a dynamic library. The SPARC SunOS 5 dynamic loader modifies the code in the thunks during program execution, which conflicts with TotalView's planting and unplanting of breakpoints. The first time through a thunk, the thunk branches to the dynamic loader, and the dynamic loader modifies the thunk to branch directly to the corresponding dynamic library routine. Subsequent trips through the thunk branch directly to the dynamic library routine. Problems on Intel X86 SunOS 5 (Solaris 2.x) platforms The Intel X86 SunOS 5 platform has no platform specific known problems. Problems in the Portland Group HPF 2.4 Compiler The Portland Group HPF has the following known problems: * The Portland Group HPF compiler generates bad debugging information for TotalView in cases where the compiler needs to generate static initialization subprograms. The symptom of this problem is that some line numbers in the HPF source window are not associated with actual Fortran source and TotalView either disallows setting breakpoints at some lines or it sets the breakpoint in the wrong place. This bug occurs quite often with 'WHERE' constructs. ------------------------------------------------------------------------ Reporting Problems If you experience any problems with TotalView, or if you have questions or suggestions, please contact us: Etnus Inc. 111 Speen Street Framingham, MA 01701-2090 Internet E-mail: support@etnus.com 1-800-856-3766 in the United States (+1) 508-875-3030 worldwide -------------------------------------- TotalView Problem Report Form and Instructions Fill out and E-mail the form below. Document just one problem per form. Remove or replace all data fields (<...>) with a selection or with contents. Do not remove '>' characters at the beginnings of lines. All data requested below is helpful to us, though not all is necessary to solve each problem. Supply as much detail as you can. If your problem involves TotalView execution, attach or FTP a reproducible example. How to prepare and send your example Create a directory named "repro" and place your problem files in it. Add the following files to repro: 1. index.txt: (List and describe the files in repro.) a. include the target executable (a test program or code fragment is preferable to a large production code) b. build the executable statically and with "-v", if possible c. show compiler version used d. show the compile/build session (stdin/stdout/stderr) e. include sources (not always necessary, but usually helpful) f. include any special libraries or input files required 2. README.TXT: (Describe the problem; please be very specific.) 3. repro.txt: (Tell us how to reproduce the problem.) a. show `uname -a` b. show your TotalView session (stdin/stdout/stderr) c. describe in exact detail your interaction with TotalView (For example, you may edit your TotalView commands into the session output using angle brackets, i.e., , e.g., .) d. use "Save Window to File..." to capture TotalView windows that document the problem Package your "repro" directory as follows: % cd ../repro/../ % tar cvf - repro | compress -c > repro.tar.Z If repro.tar.Z exceeds ~1MB, FTP it to: ftp://ftp.etnus.com/incoming/repro.tar.Z- and cut and paste `ls -l repro.tar.Z` to the end of your form. Else, if repro.tar.Z is less than ~1MB, then: % uuencode repro.tar.Z > repro.tar.Z.uu < repro.tar.Z and cut and paste `cat repro.tar.Z.uu` to the end of your form. E-mail the form as shown in the header below. -------------------------------------- Problem Report E-mail Header To: support@etnus.com, bug-toolworks@etnus.com Subject: -------------------------------------- Problem Report E-mail Body >Submitter-Id: >Originator: >Organization: >Confidential: <[ no | yes ] . . . . . . . . . . (one line)> >Synopsis: >Severity: <[ non-critical | serious | critical ] . . (one line)> >Priority: <[ low | medium | high ] . . . . . . . (one line)> >Category: totalview >Class: <[ sw-bug | doc-bug | change-request | support ] (1 ln)> >Release: 3.9.- >Environment: System: <`uname -a` output . . . . . . . . . . . . . > Platform: OS: ToolChain: Libraries: See also index.txt . >Description: See README.TXT . >How-To-Repeat: See repro.txt . >Fix: >Unformatted: `ls -l repro.tar.Z` or `cat repro.tar.Z.uu` ------------------------------------------------------------------------ How to Contact Us Etnus, Inc. 111 Speen Street Framingham, MA 01701-2090 Internet E-mail: info@etnus.com 1-800-856-3766 in the United States (+1) 508-875-3030 worldwide Visit our web site at http://www.etnus.com/. ------------------------------------------------------------------------ Notices Copyright (c)1999 by Etnus Inc. All rights reserved. Copyright (c)1996-1998 by Dolphin Interconnect Solutions, Inc. Copyright (c) 1993-1996 by BBN Systems and Technologies, a division of BBN Corporation. No part of this publication may be reproduced, stored in a retrieval system, or transmitted, in any form or by any means, electronic, mechanical, photocopying, recording, or otherwise without the prior written permission of Etnus, Inc. (Etnus). Use, duplication, or disclosure by the Government is subject to restrictions as set forth in subparagraph (c)(1)(ii) of the Rights in Technical Data and Computer Software clause at DFARS 252.227-7013. Etnus has prepared this document for the exclusive use of its customers, personnel, and licensees. The information in this document is subject to change without notice, and should not be construed as a commitment by Etnus. Etnus assumes no responsibility for any errors that appear in this document. TotalView, TimeScan, and Gist are trademarks of Etnus, Inc. All other brand names are the trademarks of their respective holders. Revision 3.9.0-1: Published July 1999 Software License Agreement Etnus, Inc., Software License Agreement IMPORTANT: READ CAREFULLY DO NOT INSTALL OR USE THIS PRODUCT (THE "SOFTWARE") UNTIL YOU HAVE CAREFULLY READ THIS AGREEMENT, WHICH PROVIDES TERMS AND CONDITIONS FOR ITS USE. INSTALLING THE SOFTWARE INDICATES THAT YOU HAVE READ, UNDERSTAND AND ACCEPT THIS AGREEMENT. IF YOU DO NOT ACCEPT THIS AGREEMENT, YOU SHOULD CANCEL THIS TRANSACTION NOW, RETURN THE LICENSE KEY AND ALL DOCUMENTATION, AND PROOF OF PAYMENT, TO ETNUS, AND REMOVE THE LICENSE KEY FROM THE LICENSED SERVER FOR A FULL REFUND WITHIN THIRTY (30) DAYS OF FIRST ACQUIRING THE LICENSE KEY. WRITTEN APPROVAL IS NOT A PREREQUISITE TO THE VALIDITY OR ENFORCEABILITY OF THIS LICENSE AND NO SOLICITATION OF ANY SUCH WRITTEN APPROVAL BY OR ON BEHALF OF ETNUS SHALL BE CONSTRUED AS AN INFERENCE TO THE CONTRARY. IF YOU HAVE ORDERED THIS SOFTWARE, ETNUS' ACCEPTANCE IS EXPRESSLY CONDITIONAL ON YOUR ASSENT TO THESE TERMS. 1 Definitions. In this License, the following terms shall have the following meanings: 1.1 "License Key(s)" means the code(s) transferred from ETNUS to Licensee allowing Licensee to use the Software and establishing the Licensed Computer(s), Licensed Platform(s), Processor Maximum and Licensed User(s). 1.2 "Derivative" means any computer program that may be developed containing all or any part of the Software (and any copies thereof), regardless of the form of code or intended use. 1.3 "Documentation" means ETNUS' published Software manuals and any written or printed technical material generally provided by ETNUS with the Software to explain its operations and aid in its use. 1.4 "ETNUS" means Etnus, Inc., a Delaware corporation with an office at 111 Speen Street, Framingham, MA 01701-2090. 1.5 "License" means this End-User License Agreement and the rights and obligations it creates under all applicable laws. 1.6 "Licensee" means the individual or entity licensing this copy of the Software and includes those persons in Licensee's immediate organization such as business associates, partners, and employees who are authorized to use this copy on the Licensed Computer(s) under the terms of this License. 1.7 "Licensed Computer(s)" shall mean the server or servers for which the Software is licensed for use according to the License Key(s). 1.8 "Licensed Platform(s)" shall mean the specific architecture or architectures of Licensed Computer(s) authorized under this Agreement and established for use according to the License Key(s). 1.9 "Licensed User(s)" shall mean the maximum number of persons in Licensee's immediate organization who are licensed concurrently to operate the Software at any one time hereunder as established by the License Key(s). 1.10 "Processor Maximum" shall mean the maximum number of processors per Licensed User Authorized under this Agreement as set forth according to the License Key(s). 1.11 "Software" means, collectively, the version(s) of the enclosed ETNUS software program(s) in object code format, together with the Documentation, including updates, modifications or new releases of such software programs and Documentation that may be provided by ETNUS to Licensee from time to time, regardless of the form in which Licensee may subsequently use the Software. 2. Grant of License. Subject to the terms and conditions of this License, ETNUS grants to Licensee a nonsublicensable, nonexclusive, nontransferable, perpetual license (subject to Section 7 below) to use the Software internally on the Licensed Computer(s) and by the Licensed User(s). 3. Ownership of Software. As between the parties, ETNUS and its suppliers retain title to, ownership of and all proprietary rights with respect to the Software, and all copies and portions thereof, whether or not incorporated into or with other software. The License does not constitute a sale of the Software or any portion or copy of it. Licensee acknowledges and agrees that the Software and the Documentation are ETNUS' proprietary products protected by U. S. Copyright and other laws, international treaty provisions and applicable laws, including copyright and intellectual property laws of the country in which the Software is being used. 4. Possession and Copying of Software. Licensee agrees that the Software will be installed or used on only the Licensed Computer(s) and Licensed Platforms by the Licensed User(s) and that Licensee shall not exceed the Processor Maximum. Licensee agrees to make no more than one (1) copy of the Software solely for backup or archival purposes, which (with the original) must be kept in Licensee's possession or control at all times. Licensee agrees to place a label on the outside of any such separate and independent backup medium, showing the program name, the version number and the ETNUS copyright notice, restricted rights legend, and trademark notices, in the same form as they appear on the original licensed copy. 5. Transfer or Reproduction of Software. 5.1 The Software may only be used on the Licensed Computer(s). Licensee may, subject to any applicable export requirements, change the Licensed Computer(s) which are authorized for the use of the Software to other computer(s) within Licensee's immediate organization after giving ETNUS prior notice of the CPU serial number(s) and location(s) of such computer(s) and making payment to ETNUS of the then-applicable fees. If Licensee changes the computer(s) on which Licensee is using the Software, Licensee may no longer use the Software on the computers formerly used and the new computer(s) shall be deemed to be Licensed Computer(s). 5.2 Licensee may not transfer any copy of the Software outside Licensee's immediate organization, on either a temporary or a permanent basis without obtaining the prior written approval of ETNUS. If the License transfer is approved, all copies of the Software, including the original, must be transferred to such transferee. ETNUS has the immediate right to terminate this License, to trace serial numbers, and to take any appropriate legal action in the event any of these conditions are violated. 5.3 Except as expressly provided in Sections 2 and 4 above, copying of the Software or any portion thereof, including Software that has been modified or incorporated into or with other software is expressly forbidden. Licensee shall not (and shall not allow any third party to) (i) decompile, disassemble, discover any source code or underlying ideas or algorithms or file formats or programming or interoperability interfaces of the Software or of any files contained in or generated using the Software by any means whatsoever, (ii) remove any product identification, copyright or other notices of the Software, (iii) provide, lease, lend or use the Software for timesharing or service bureau purposes or otherwise use or allow others to use the Software to or for the benefit of third parties, or (iv) load or use any portion of the Software (whether or not modified or incorporated into or with other software) on or with any machine or system other than the applicable Licensed Computer(s). 6. License Fees. License fees are set forth in the Product Order(s) and/or attachments (the "License Fees") and are exclusive of shipping, taxes, duties and the like, which shall be paid by Licensee. If not otherwise specified, applicable License Fees are due and payable within thirty (30) days of delivery or download of the Software, f.o.b. ETNUS. Non-payment of License Fees shall be deemed a material breach of this License. 7. Termination of License. The License shall be deemed effective from the date Licensee downloads or receives the Software and accepts the terms herein (the "Effective Date"), and shall be effective only so long as Licensee uses or possesses the Software, unless the License is terminated by ETNUS for a violation of its terms or otherwise pursuant to the terms of this License. The License will terminate immediately if: (i) Licensee fails to cure any material breach of this License within thirty (30) days of receiving notice of such breach from ETNUS (or immediately upon notice in the case of a breach of Sections 5 or 11 of this License); (ii) Licensee becomes insolvent or seeks protection under any bankruptcy, receivership, trust deed, creditors arrangement, composition or comparable proceeding; or (iii) Licensee ceases to do business or otherwise terminates its business operations. Upon termination, the license grants under Section 2 shall terminate and Licensee shall immediately cease all use of the Software and return or destroy all copies of the Software and all portions thereof (whether or not modified or incorporated with or into other software) and, if requested, so certify to ETNUS in writing. Except for provisions that survive according to their express terms and Sections 3, 5.2, 5.3, 6, 7, 8.5, 8.6, 9, 10, 11, and 12 (as applicable), the rights and obligations of the parties shall cease immediately upon termination of this License.. Termination is not an exclusive remedy and all other remedies will be available whether or not the License is terminated. 8. Limited Warranty and Disclaimer. 8.1 Software. Subject to the conditions and limitations on liability stated herein, ETNUS warrants to the original Licensee only, that for a period of thirty (30) days from the Effective Date (the "Warranty Period"), Software will materially conform to ETNUS' then current Documentation for such Software. This warranty covers only problems reported to ETNUS during the Warranty Period. 8.2 Media. For the Warranty Period, ETNUS warrants to the original Licensee only, that the media containing the Software (but not the Software itself) is free from physical defects. 8.3 Documentation. In the event of a descriptive error in the Documentation, ETNUS shall correct such an error without charge by providing addenda or substitute pages. ETNUS need not treat such errors in the Documentation as errors in the Software, but may issue corrections to the Documentation instead. 8.4 Exceptions. Notwithstanding the above, the limited warranty under this Section shall not apply to any Software that has been abused, misused, damaged in transport, altered, neglected or subjected to unauthorized repair or installation as determined by ETNUS. 8.5 Remedy. ETNUS' sole and exclusive liability and Licensee's sole and exclusive remedy for a breach of the limited warranty under this Section shall be, at ETNUS' sole option, to repair or replace the defective Software or refund the License Fees paid for the Software. In the event that a reported defect is determined by ETNUS not to be a defect in the Software, Media or Documentation, or the defect is the result of unauthorized modifications or improper use of the Software, Licensee shall be subject to charges for consulting fees at then- current rates plus expenses incurred by ETNUS in responding to any defect report. 8.6 DISCLAIMER. EXCEPT AS EXPRESSLY PROVIDED IN THIS SECTION, THE SOFTWARE IS PROVIDED "AS IS" AND, TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, ETNUS DISCLAIMS ALL OTHER WARRANTIES, EXPRESS OR IMPLIED, REGARDING THE SOFTWARE, MEDIA AND ANY OTHER SUBJECT MATTER UNDER THIS LICENSE, INCLUDING ANY WARRANTY OF NONINFRINGEMENT AND THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. EXCEPT AS EXPRESSLY PROVIDED HEREIN, ETNUS DOES NOT WARRANT, GUARANTEE, OR MAKE ANY REPRESENTATIONS REGARDING THE USE, OR THE RESULTS OF THE USE, OF THE SOFTWARE OR DOCUMENTATION IN TERMS OF CORRECTNESS, ACCURACY, RELIABILITY, OR OTHERWISE. 9. LIMITATION OF LIABILITY. NOTWITHSTANDING ANYTHING ELSE IN THIS AGREEMENT OR OTHERWISE, ETNUS WILL NOT BE LIABLE WITH RESPECT TO ANY SUBJECT MATTER OF THIS AGREEMENT UNDER ANY CONTRACT, NEGLIGENCE, STRICT LIABILITY OR OTHER LEGAL OR EQUITABLE THEORY FOR (i) ANY AMOUNTS IN EXCESS OF THE LICENSE FEES PAID TO ETNUS HEREUNDER FOR THE SOFTWARE OR (ii) ANY INCIDENTAL OR CONSEQUENTIAL DAMAGES, LOST PROFITS OR LOST OR INACCURATE DATA OR (iii) COST OF PROCUREMENT OF SUBSTITUTE GOODS, TECHNOLOGY OR SERVICES. ETNUS SHALL HAVE NO LIABILITY FOR ANY FAILURE OR DELAY DUE TO MATTERS BEYOND ITS REASONABLE CONTROL. 10. Government Matters. Licensee agrees to comply with the U.S. Foreign Corrupt Practices Act (regarding among other things, payments to government officials) and all export laws, restrictions, national security controls and regulations of the United States or other applicable foreign agency or authority, and not to export or re-export, or allow the export or re- export of the Software or any copy or direct product thereof in violation of any such restrictions, laws or regulations, or to any group D:1 or E:2 country (or any national of such country) specified in the then current Supplement No. 1 to Part 740, or, in violation of the embargo provisions in Part 746, of the U.S. Export Administration Regulations (or any successor regulations or supplement), except in compliance with and with all licenses and approvals required under applicable export laws and regulations, including without limitation, those of the U.S. Department of Commerce. The Software is a "commercial item" as that term is defined in 48 C.F.R. 2.101 (2/9/98), consisting of "commercial computer software" and "commercial computer software documentation", as such terms are used in 48 C.F.R. 12.212 (2/9/98). Consistent with 48 C.F.R. 12.212 and 48 C.F.R. 227.7202-1 through 227.7202-4 (1/22/98), all U.S. Government users, including contractors and subcontractors under any U.S. Government contract, acquire the Software with only those rights set forth in this License. If Licensee is acquiring this License under a United States government contract, Licensee agrees to include all necessary and applicable restricted rights legends on the Software and the Documentation to protect ETNUS' proprietary rights under the regulations cited above. Licensee agrees always to include such legends whenever the Software or Documentation is, or is deemed to be, deliverable under that contract. 11. Confidentiality. Licensee agrees and acknowledges that the Software contains confidential and proprietary technology, ideas, know-how, algorithms and other information ("Confidential Information"). Except as expressly allowed by this License, Licensee will not use, disclose or allow any third party to have access to any Confidential Information except to the extent Licensee can document that such information is generally available (through no action or inaction of Licensee) for use and disclosure by the public without any charge or license. Licensee recognizes and agrees that there is no adequate remedy at law for a breach of this Section 11, that such a breach would irreparably harm ETNUS and that ETNUS is entitled to equitable relief (including, without limitations, injunctions) with respect to any such breach or potential breach in addition to any other remedies. 12. Miscellaneous. 12.1 Except for Licensee, no other person or entity may rely on any rights, including but not limited to rights under the warranty provisions, granted in this License. Neither this License nor any rights, licenses or obligations hereunder are assignable or transferable by Licensee without the prior written consent of ETNUS and any attempt to do so shall be void. 12.2 Any notice, report, approval or consent hereunder shall be in writing. 12.3 No failure to exercise, and no delay in exercising, on the part of either party, any privilege, any power or any rights hereunder will operate as a waiver thereof, nor will any single or partial exercise of any right or power hereunder preclude further exercise of any other right hereunder. 12.4 If any provision of this License shall be adjudged by any court of competent jurisdiction to be unenforceable or invalid, that provision shall be limited or eliminated to the minimum extent necessary so that this License shall otherwise remain in full force and effect and enforceable. 12.5 This License shall be deemed to have been made in, and shall be construed pursuant to the laws of the Commonwealth of Massachusetts and the United States without regard to conflicts of laws provisions thereof and without regard to the United Nations Convention on Contracts for the International Sale of Goods. 12.6 The parties agree that a material breach of this License adversely affecting ETNUS' proprietary rights in the Software would cause irreparable injury to ETNUS for which monetary damages would not be an adequate remedy and that ETNUS shall be entitled to equitable relief in addition to any remedies it may have hereunder or at law. 12.7 Any waivers or amendments shall be effective only if made in writing by non-pre-printed agreements clearly understood by both parties to be an amendment or waiver and signed by a representative of the respective parties authorized to bind the parties. Both parties agree that this License is the complete and exclusive statement of the mutual understanding of the parties and supersedes and cancels all previous written and oral agreements and communications relating to the subject matter of this License. 12.8 Each party recognizes and agrees that the warranty disclaimers and liability and remedy limitations in this License are material bargained for bases of this License and that they have been taken into account and reflected in determining the consideration to be given by each party under this License and in the decision by each party to enter into this License. 12.9 Notwithstanding any provision hereof, for all purposes of this License each party shall be and act as an independent contractor and not as partner, joint venturer, or agent of the other and shall not bind nor attempt to bind the other to any contract. SLA #020499