Wednesday May 30, 2012

Remote Development With Solaris Studio

A new technical article has been published on OTN:

How to Develop Code from a Remote Desktop with Oracle Solaris Studio

by Igor Nikiforov

This article describes the remote desktop feature of the Oracle Solaris Studio IDE, and how to use it to compile, run, debug, and profile your code running on remote servers.

Published May 2012

Introducing the IDE Desktop Distribution
Determining Whether You Need the Desktop Distribution
Creating the Desktop Distribution
Using the Desktop Distribution
See Also
About the Author

Introducing the IDE Desktop Distribution

Sun Studio 12 Update 1 introduced a unique remote development feature that allows you to run just one instance of the IDE while working with multiple servers and platforms. For example, you could run the IDE on an x86-based laptop or desktop running Oracle Linux, and use a SPARC-based server running Oracle Solaris 10 to compile, run, debug, and profile your code. The IDE works seamlessly just as if you had the Oracle Solaris operating system on your laptop or desktop. more

Wednesday Mar 16, 2011

We've Got Articles

Just a reminder that we've got a bunch of technical articles over at the Oracle Technical Network (OTN) regarding Oracle Solaris Studio. These are deep dives into the technology of compilers and application development:

Recently Published

Stability of the C++ ABI: Evolution of a Programming Language (revised March 2011)
As C++ evolved over the years, the Application Binary Interface (ABI) used by a compiler often needed changes to support new or evolving language features. This paper addresses these issues in Oracle Solaris Studio C++, and what you can expect when you develop programs using Oracle Solaris Studio C+

Mixing C and C++ Code in the Same Program (revised February 2011)

Profiling MPI Applications (Updated January 2011)
Profiling of Message Passing Interface (MPI) applications with the Oracle Solaris Studio Performance Tools.

Oracle Solaris Studio Performance Tools
This article describes the kinds of performance questions users typically ask, and then it describes the Oracle Solaris Studio performance tools and shows examples of what the tools can do.

Taking Advantage of OpenMP 3.0 Tasking with Oracle Solaris Studio
A technical white paper that shows how to use Oracle Solaris Studio 12.2 to implement, profile and debug and example OpenMP program.

Oracle Solaris Studio FORTRAN Runtime Checking Options Whitepaper

Translating gcc/g++/gfortran Options to Oracle Solaris Studio Compiler Options Technical Article

Examine MPI Applications with the Oracle Solaris Studio Performance Analyzer How to Guide

Handling Memory Ordering in Multithreaded Applications with Oracle Solaris Studio 12 Update 2: Part 1, Compiler Barriers Technical Article

Handling Memory Ordering in Multithreaded Applications with Oracle Solaris Studio 12 Update 2: Part 2, Memory Barriers and Memory Fences Technical Article

Developing Enterprise Applications with Oracle Solaris Studio Whitepaper

Developing Parallel Programs — A Discussion of Popular Models Whitepaper

>See the complete list

Wednesday Feb 16, 2011

65 Things About Solaris Studio

Oracle Solaris Studio isn't just one thing. It's 65 "things". Check out the man pages. These are all the command-line tools in Solaris Studio: 

    • CC - C++ compiler
    • CCadmin - clean the templates database; provide information from and updates to the database.
    • analyzer - GUI for analyzing a program performance experi ment
    • bcheck - batch utility for Runtime Checking (RTC)
    • binopt - Solaris Binary Optimizer
    • bw - command used to measure system-wide bandwidth consump tion
    • c++filt - c++ name demangler
    • c89 - compile standard C programs
    • c99 - compile standard C programs
    • cb - C program beautifier
    • cc - C compiler
    • cflow - generate C flowgraph
    • collect - command used to collect program performance data
    • collector - subcommands of dbx used for performance data collection
    • cscope - interactively examine a C program
    • ctrace - C program debugger
    • cxref - generate C program cross-reference
    • dbx - source-level debugging tool
    • dbxtool - source-level debugger GUI
    • dem - demangle a C++ name
    • discover - Sun Memory Error Discovery Tool
    • dmake - Distributed Make
    • dumpstabs - utility for dumping out debug information
    • dwarfdump - dumps DWARF debug information of an ELF object
    • er_archive - construct function and module lists for a per formance experiment
    • er_bit - generates an experiment from data collected on a bit-instrumented program (Solaris only)
    • er_cp - copy a performance experiment
    • er_export - dump raw data from a performance experiment
    • er_generic - command used to generate an experiment from text files containing profile information
    • er_html - generate an HTML file from an experiment for browsing the data
    • er_kernel - generate an Analyzer experiment on the Solaris kernel
    • er_mpipp - command used to preprocess MPI VampirTrace data from an experiment
    • er_mv - move a performance experiment
    • er_otfdump - command to dump OTF trace data
    • er_print - print an ASCII report from one or more perfor mance experiments
    • er_rm - remove performance experiments.
    • er_src - print source or dissasembly with index lines and interleaved compiler commentary
    • er_vtunify - command process raw MPI VampirTrace data into OTF format
    • f95 - Fortran 95 compiler
    • fbe - assembler
    • fdumpmod - utility for displaying Fortran 95 module informa tion
    • fpp - the Fortran language preprocessor for FORTRAN 77 and Fortran 95.
    • fpr - convert FORTRAN carriage-control output to printable form
    • fpversion - print information about the system CPU and FPU
    • fsplit - split a multi-routine FORTRAN 90 or FORTRAN 77 source file into individual files.
    • indent - indent and format a C program source file
    • inline - in-line procedure call expander
    • intro - introduction to Oracle Solaris Studio command-line manual pages
    • lint - a C program checker
    • lock_lint - verify use of locks in multi-threaded programs
    • ptclean - clean up the parameterized types database
    • register_solstudio - Oracle Solaris Studio registration utility
    • ripc - collect performance counter information from an application
    • rtc_patch_area - patch area utility for Runtime Checking
    • solstudio - Oracle Solaris Studio 12.2 integrated develop ment environment
    • spot - run a tool chain on an executable, and generate a website for browsing the data
    • spot_diff - compare the output of two or more spot runs and write results to a HTML file to be viewed in a browser.
    • ss_attach - start a debugging session in the Sun Studio IDE attached to a specified process
    • tcov - source code test coverage analysis and source line profile
    • tha - GUI for analyzing a Thread Analyzer experiment
    • traps - command used to measure system-wide traps
    • uncover - Code Coverage Tool
    • version - display version identification of object file or binary
    • xprof_atob - ascii/binary profile data conver sion
    • xprof_btoa - ascii/binary profile data conver sion

  • Monday Feb 14, 2011

    Discover and Uncover

    There are two new tools in the 12.2 release of Oracle Solaris Studio. Discover detects memory leaks, and Uncover measures code coverage in an application:


    Memory-related errors in programs are notoriously difficult to find. Discover allows you to find such errors easily by pointing out the exact place where the problem exists in the source code. For example, if your program allocates an array and does not initialize it, then tries to read from one of the array locations, the program will probably behave erratically. Discover can catch this problem when you run the program in the normal way.

    Other errors detected by Discover include:

    • Reading from and writing to unallocated memory
    • Accessing memory beyond allocated array bounds
    • Incorrect use of freed memory
    • Freeing the wrong memory blocks
    • Memory leaks

    Discover is simple to use. Any binary (even a fully optimized binary) that has been prepared by the compiler can be instrumented with a single command, then run in the normal way. During the run, Discover produces a report of the memory anomalies, which you can view as a text file, or as HTML in a web browser.


    Uncover is a simple and easy to use command-line tool for measuring code coverage of applications. Code coverage is an important part of software testing. It gives you information on which areas of your code are exercised in testing and which are not, enabling you to improve your test suites to test more of your code. The coverage information reported by Uncover can be at a function, statement, basic block, or instruction level.

    Uncover provides a unique feature called uncoverage, which allows you to quickly find major functional areas that are not being tested. Other advantages of Uncover code coverage over other types of instrumentation are:

    • The slowdown relative to uninstrumented code is fairly small.
    • Since Uncover operates on binaries, it can work with any optimized binary.
    • Measurements can be done by instrumenting the shipping binary. The application does not have to be built differently for coverage testing.
    • Uncover provides a simple procedure for instrumenting the binary, running tests, and displaying the results.
    • Uncover is multithread safe and multiprocess safe.
    Complete documentation on Discover and Uncover is here.

    Tuesday Feb 08, 2011

    Overview of Oracle Solaris Studio Compilers & Tools

    There's a great overview of the components and features of Oracle Solaris Studio compilers and tools now available in HTML and PDF:

    »Oracle Solaris Studio Overview - HTML - PDF

    Oracle Solaris Studio provides everything you need to develop C, C++, and Fortran applications to run in Oracle Solaris 10 on SPARC or x86 and x64 platforms, or in Oracle Linux on x86 and x64 platforms. The compilers and tools are engineered to make your applications run optimally on Oracle Sun systems.

    In particular, Oracle Solaris Studio tools are designed to leverage the capabilities of multicore CPUs including the Sun SPARC T3, UltraSPARC T2, and UltraSPARC T2 Plus processors, and the Intel® Xeon® and AMD Opteron processors. The tools allow you to more easily create parallel and concurrent software applications for these platforms.

    The components of Oracle Solaris Studio include:

    • IDE for application development in a graphical environment. The Oracle Solaris Studio IDE integrates several other Oracle Solaris Studio tools and uses Oracle Solaris technologies such as DTrace.

    • C, C++, and Fortran compilers for compiling your code at the command line or through the IDE. The compilers are engineered to work well with the Oracle Solaris Studio debugger (dbx), and include the ability to optimize your code by specifying compiler options.

    • Libraries to add advanced performance and multithreading capabilities to your applications.

    • Make utility (dmake) for building your code in distributed computing environments at the command line or through the IDE.

    • Debugger (dbx) for finding bugs in your code at the command line, or through the IDE, or through an independent graphical interface (dbxtool).

    • Performance tools that employ Oracle Solaris technologies such as DTrace can be used at the command line or through independent graphical interfaces to find trouble spots in your code that you cannot detect through debugging.

    These tools together enable you to build, debug, and tune your applications for high performance on Oracle Solaris running on Oracle Sun systems. Each component is described in greater detail later in this document.

    Wednesday Feb 02, 2011

    Where To Find Oracle Solaris Studio Resources

    Here's where to find information and discussions for the latest Oracle Solaris Studio compilers and tools at it's new home on the Oracle Technical Network (OTN):

    There are also pages focused on primary topics regarding Solaris Studio compilers and tools:

    Oracle Solaris Studio C, C++, and Fortran compilers include advanced features for building applications on Oracle Solaris SPARC and x86/x64 platforms.

    Successful program debugging is more an art than a science. dbx is an interactive, source-level, post-mortem and real-time command-line debugging tool plus much more.

    Performance analysis is the first step toward program optimization. Oracle Solaris Studio Performance Analyzer can help you assess the performance of your code, identify potential performance problems, and locate the part of the code where the problems occur.

    Oracle Solaris Studio C, C++, and Fortran compilers offer a rich set of compile-time options for specifying target hardware and advanced optimization techniques. 

    Multicore/Parallel Programming
    High Performance and Technical Computing (HPTC) applies numerical computation techniques to highly complex scientific and engineering problems. Oracle Solaris Studio compilers and tools provide a seamless, integrated environment from desktop to TeraFLOPS for both floating-point and data-intensive computing.

    The floating-point environment on Oracle Sun SPARC and x86/x64 platforms enables you to develop robust, high-performance, portable numerical applications. The floating-point environment can also help investigate unusual behavior of numerical programs written by others. The Sun Performance Library provides highly optimized versions of many advanced math function routines.

    Still under development, there's more to do. Open for suggestions.

    Tuesday Jan 11, 2011

    Oracle Solaris Studio 12 Documentation Library

    The migration from to includes the product documentation on

    You can now find all the Solaris Studio 12 product documentation on the Oracle Solaris Studio 12 Documenation Library, which includes the 12, 12 update 1, and current 12.2 releases.

    Thursday Jun 03, 2010

    We're Back! With a New Release!

    Oracle Solaris Studio Express 6/10 release is now available .. follow this link.

    Lots of updates and new compiler features, like optimizations for the latest SPARC and x86/x64 platforms, new dbx commands for debugging OpenMP programs, and new performance analyzer features, like the ability to compare two runtime experiment.

    Glad to be back! Stay tuned.


    Deep thoughts on compiling C, C++, and Fortran codes with Oracle Solaris Studio compilers, especially optimization and parallelization, from the Solaris Studio documentation lead, Richard Friedman. Email him at
    Richard dot Friedman at Oracle dot com

    When Run Was A Compiler


    « July 2016