opannotate - produce source or assembly annotated with profile data


   opannotate [ options ] [profile specification]


   opannotate  outputs  annotated source and/or assembly from profile data
   of an OProfile session.  See  oprofile(1)  for  how  to  write  profile


   --assembly / -a
          Output  annotated assembly. The binary file to be annotated does
          not need full debugging information  to  use  this  option,  but
          symbol  information  is  required.  Without  symbol information,
          opannotate will silently refuse to annotate the binary.  If this
          option  is  combined with --source, then mixed source / assembly
          annotations are output.

   --demangle / -D none|smart|normal
          none: no demangling. normal:  use  default  demangler  (default)
          smart:  use  pattern-matching to make C++ symbol demangling more

   --exclude-dependent / -x
          Do not include application-specific images for libraries, kernel
          modules  and  the  kernel.  This  option only makes sense if the
          profile session used --separate.

   --exclude-file [files]
          Exclude all files in the  given  comma-separated  list  of  glob
          patterns.  This  option  is  supported  solely with the --source
          option. It can be used to filter out source files in the  output
          using the following types of specifications:

          * filenames (basename -- i.e., no path)

          * filename  glob  specifications  (all files whose base filename
            matches the given pattern)

          * directory segments (all source files located in the  specified
            directory; e.g. "libio")

          * directory segment glob specifications (e.g., "libi*")

   --exclude-symbols / -e [symbols]
          Exclude all the symbols in the given comma-separated list.

   --help / -? / --usage
          Show help message.

   --image-path / -p [paths]
          Comma-separated list of additional paths to search for binaries.
          This is needed to find modules in kernels 2.6 and upwards.

   --root / -R [path]
          A path to a filesystem to search for additional binaries.

   --include-file [files]
          Only include files in the given  comma-separated  list  of  glob
          patterns.   The  same  rules  apply  for  this option as for the
          --exclude-file option.

   --merge / -m [lib,cpu,tid,tgid,unitmask,all]
          Merge any profiles separated in a --separate session.

   --include-symbols / -i [symbols]
          Only include symbols in the given comma-separated list.

   --objdump-params [params]
          Pass the given parameters as extra values when calling  objdump.
          If  more  than  one  option  is  to  be  passed  to objdump, the
          parameters must be enclosed in a quoted string.

          An example of where this option is useful is when your toolchain
          does  not automatically recognize instructions that are specific
          to your processor.  For example, on IBM POWER7/RHEL  6,  objdump
          must  be  told  that  a  binary  file  may  have POWER7-specific
          instructions. The opannotate option to show the  POWER7-specific
          instructions is:

          The  opannotate option to show the POWER7-specific instructions,
          the source code (--source) and the line numbers (-l) would be:
             --objdump-params="-Mpower7 -l --source"

   --output-dir / -o [dir]
          Output directory. This makes  opannotate  output  one  annotated
          file  for  each  source  file.  This  option  can't  be  used in
          conjunction with --assembly.

   --search-dirs / -d [paths]
          Comma-separated list of paths to search for  source  files.  You
          may  need  to  use this option when the debug information for an
          image contains relative paths.

   --base-dirs / -b [paths]
          Comma-separated list of paths to strip from debug source  files,
          prior to looking for them in --search-dirs.

          Use  sample  database  from  the  specified  directory  dir_path
          instead  of  the  default  location.  If  --session-dir  is  not
          specified,   then   opannotate   will   search  for  samples  in
          <current_dir>/oprofile_data first. If that  directory  does  not
          exist, the standard session-dir of /var/lib/oprofile is used.

   --source / -s
          Output  annotated source. This requires debugging information to
          be available for the binaries.

   --threshold / -t [percentage]
          For annotated assembly, only output data for symbols  that  have
          more  than  the  given percentage of total samples. For profiles
          using multiple events, if  the  threshold  is  reached  for  any
          event, then all sample data for the symbol is shown.

          For  annotated  source,  only  output data for source files that
          have more than  the  given  percentage  of  total  samples.  For
          profiles  using multiple events, if the threshold is reached for
          any event, then all sample data for the source file is shown.

   --verbose / -V [options]
          Give verbose debugging output.

   --version / -v
          Show version.


   No special environment variables are recognised by opannotate.


          The location of the generated sample files.


   This man page is current for oprofile-1.1.0.


   /usr/share/doc/oprofile/, oprofile(1)


Personal Opportunity - Free software gives you access to billions of dollars of software at no cost. Use this software for your business, personal use or to develop a profitable skill. Access to source code provides access to a level of capabilities/information that companies protect though copyrights. Open source is a core component of the Internet and it is available to you. Leverage the billions of dollars in resources and capabilities to build a career, establish a business or change the world. The potential is endless for those who understand the opportunity.

Business Opportunity - Goldman Sachs, IBM and countless large corporations are leveraging open source to reduce costs, develop products and increase their bottom lines. Learn what these companies know about open source and how open source can give you the advantage.

Free Software

Free Software provides computer programs and capabilities at no cost but more importantly, it provides the freedom to run, edit, contribute to, and share the software. The importance of free software is a matter of access, not price. Software at no cost is a benefit but ownership rights to the software and source code is far more significant.

Free Office Software - The Libre Office suite provides top desktop productivity tools for free. This includes, a word processor, spreadsheet, presentation engine, drawing and flowcharting, database and math applications. Libre Office is available for Linux or Windows.

Free Books

The Free Books Library is a collection of thousands of the most popular public domain books in an online readable format. The collection includes great classical literature and more recent works where the U.S. copyright has expired. These books are yours to read and use without restrictions.

Source Code - Want to change a program or know how it works? Open Source provides the source code for its programs so that anyone can use, modify or learn how to write those programs themselves. Visit the GNU source code repositories to download the source.


Study at Harvard, Stanford or MIT - Open edX provides free online courses from Harvard, MIT, Columbia, UC Berkeley and other top Universities. Hundreds of courses for almost all major subjects and course levels. Open edx also offers some paid courses and selected certifications.

Linux Manual Pages - A man or manual page is a form of software documentation found on Linux/Unix operating systems. Topics covered include computer programs (including library and system calls), formal standards and conventions, and even abstract concepts.