If you suspect that there is some tracing data (synchronization wait tracing data, heap tracing data or MPI tracing data) missing from an experiment, check the following list of topics that explain why data might be missing.
If you attach dbx to a program when it is running, you cannot collect tracing data unless you preload the collector library when you run the program. Tracing data is collected by interposing on the functions that are to be traced. If the collector library is loaded after the functions that are to be traced, the interposition does not succeed.
To preload the collector library, set the environment variable LD_PRELOAD to libcollector.so and set the environment variable LD_LIBRARY_PATH to /opt/SUNWspro/lib, or to the equivalent path on your system. If you are using SPARC-V9 64-bit architecture, you must also set the environment variable LD_LIBRARY_PATH_64 to /opt/SUNWspro/lib/v9. If these environment variables are already defined, you should add to them rather than redefining them. When you have finished collecting data, remove the collector library settings from these environment variables.
If your program makes a successful call to exec(2) or any of its variants, the performance experiment is abnormally terminated and no more data is collected. If the call fails, data collection proceeds as normal. If you ran this program under dbx, you cannot collect data after the call to exec has succeeded, but if you use the collect(1) command to collect data, you can record an experiment on the new image using the -F on option.
Abnormally-terminated experiments can be read successfully by the Performance Analyzer. If you want to analyze the experiment on a different computer than the one on which it was recorded, use the er_archive(1) command on the computer on which you recorded the experiment first.
Tracing data is recorded by inserting a wrapper function between the real system library functions and the application that called the library function. The references to the wrapper functions are resolved at runtime and require that the library is dynamically loaded. If you statically link any of the system libraries, the references to those routines are already resolved in the executable and cannot be resolved at runtime. Consequently, the collector cannot interpose its wrapper function and therefore cannot collect data on the function call.