Updated 00/3/28
Sun WorkShop(TM) 6 Sampling Analyzer Readme

This document contains last-minute information about the final release of the Sun WorkShop(TM) 6 Sampling Analyzer. It describes the software corrections addressed by this release and lists the known problems, limitations, and incompatibilities.

To view the text version of this document, type the following at a command prompt:

    example% more /<install-directory>/SUNWspro/READMEs/analyzer.readme

To access the HTML version of this document, point your Netscape(TM) Communicator 4 or compatible Netscape version browser to:


Replace <install-directory> with the path to your Sun WorkShop installation directory. In a default installation, <install-directory> is /opt.

Note - If your Sun WorkShop software is not installed in the /opt directory, ask your system administrator for the equivalent path on your system.

For more information about this product, see:

  • Sun WorkShop 6 Release Notes -- Describes installation-related and late-breaking information about this final release. Information in the release notes overrides information in all readme files.

  • About Sun WorkShop 6 Documentation -- Describes the documentation available with this Sun WorkShop release and how to access it.

  • What's New in Sun WorkShop 6 -- Describes the new features in this release.

These documents are accessible in HTML by pointing your browser to <install-directory>/SUNWspro/docs/index.html. Replace <install-directory> with the path to your Sun WorkShop installation directory. In a default installation, <install-directory> is /opt.

Note - If your Sun WorkShop software is not installed in the /opt directory, ask your system administrator for the equivalent path on your system.


  1. About the Analyzer
  2. Patches Not Included in This Release 
  3. Problems and Workarounds 
  4. Limitations and Incompatibilities 
  5. Documentation Errata 

A. About the Analyzer 

Used in combination with the Sampling Collector, the Analyzer provides a means of examining program performance and isolating inefficient code.

The Analyzer runs on the Solaris(TM) 2.6, 7, and 8 Operating Environment.

The Analyzer has been redesigned and enhanced to the point that it is essentially a new product. The best way to find out about the new Analyzer is to read the online help and the Analyzer and Collector man pages.

B. Patches Not Included in This Release 

The following patches, which are needed for the Collector and Analyzer to operate properly, are not included in this release:

Operating-System Level Patch Number (SPARC) Patch Number (Intel) Contents
5.6 105210-27 105211-27 libaio, libc, and watchmalloc patch
5.6 105568-16 (105210-27) 105569-16 (105211-27) /usr/lib/libthread.so.1 patch
5.7 106980-09 (106541-09) 106981-09 (106542-09) /usr/lib/libthread.so.1 patch
5.7 107544-03 107545-03 /usr/lib/fs/ufs/fsck patch
5.7 106541-09 (107544-03) 106542-09 (107545-03) Kernel patch for Performance Tools
5.7 108244-01 (106541-09) 108245-01 libaio patch

The Collector and Analyzer encounter the following problems when the patches are not installed:

  • Programs that use libaio and invoke aio_cancel() abort during data collection with a variety of error messages, including the following:
    dbx: Cannot read status for 1@1--No such file or directory
    dbx: Warning: proc state race condition encountered!
  • Multithreaded executables cause a SEGV during data collection. Sometimes the core dump occurs in the thread library code, and sometimes it occurs in sigacthandler() for the SIGPROF signal.

  • Multithreaded executables can fail during collection with various dbx error messages, including those listed under the first bullet and messages reporting the following:
    generic libthread_db.so error
  • Multithreaded executables can fail during collection with a libthread panic relating to a signal fault in a critical section.

The workaround for all these problems is to install the required patches.

The patches are available at the following URL:


C. Problems and Workarounds

For updates, check Hot News for Sun WorkShop 6 ( http://www.sun.com/workshop/users/ws.html).

Note - Some bugs that appear to be in the Analyzer may actually be Collector bugs. For information about these bugs, see the dbx readme and the Collector man page.

Function <Unknown>

Under some circumstances, a PC cannot be mapped to a known function, so it is mapped to function <Unknown>. This happens for .mul and .div in libc in V7 compiles, all parts of ld.so, and _start in V9 Fortran programs. If <Unknown> represents a significant part of your data, please report it as a bug.

Stack Unwind Problems

In some cases, stack unwind may not completely unwind the stack. When this happens, inclusive metrics for functions above the point of failure do not count events where the stack unwind failed. All such points show as callees of the pseudofunction <Total>.

Lost Profiling Data for LWPs

Under some circumstances profiling interrupts for one or more LWPs may be lost. When this happens, data displayed does not include thread profile metrics for threads run on those LWPs.

Measurement of Optimized Code

Measurements on highly optimized code may be difficult to interpret. Inlined functions do not appear, and source line metrics may show data on lines that were not executed and not show data on lines that were. You can best interpret the data by looking at the annotated disassembly.

C. Limitations and Incompatibilities 

Hardware-Counter Overflow Profiling

Hardware-counter overflow profiling is not implemented for Sun WorkShop 6.

Finding Source and Object Files

The executable name generated by the debugger for attached experiments may be a relative path, not an absolute path, or the path, even though absolute, may not be accessible to the Analyzer. Similar problems can arise with object files loaded from an archive (.a).

The Analyzer copes with this problem as follows:

  1. It looks for the file using the given path.
  2. If it does not find the file, it extracts the basename from the given path (the name following the last "/") and looks for the file as ./<basename>.
  3. If it still does not find the file, it generates an error or warning, showing the path as it originally appeared in the experiment.

At this point you can look at the Summary Metrics window to determine the file name the Analyzer is using, then set up a symbolic link from the current directory pointing to the real file and try the operation again.

Experiment Record Incompatibility

The Analyzer cannot load experiment records created with earlier versions of the current Collector. It reports, "Unrecognized version number; expected 8".

Recording over NFS

Recording data across NFS causes excessive system wait times that may distort the measured data. If at all possible, record to a local disk.

D. Documentation Errata 

There is no new information at this time.

Copyright 2000 Sun Microsystems, Inc., 901 San Antonio Road, Palo Alto, CA 94303, U.S.A. All rights reserved.

Sun, Sun Microsystems, the Sun logo, docs.sun.com, and Solaris are trademarks, registered trademarks, or service marks of Sun Microsystems, Inc.s in the U.S. and other countries.