This is the list of requirements for the gprof profiling solution.

Abstract:
  Gprof is a profiling tool, working in conjunction with gcc. It furnishes
profiling results on a single process, provided this process was compiled with
appropriate options.
  The Gprof solution comprises different pieces of software: the compiler 
itself expanding specific code to detect arcs, a library used to collect all 
necessary information and make them available, and the gprof tool itself that
displays the result in a human readable fashion.

  The library will be called hereafter libgmon, even if its name may differ in
the final implementation.
  The gprof tool is not part of this repository (part of the binutils) and may
also be furnished by the Operating System.

Requirements:

1- Gprof collects different series of data to provide the profiling
   information:
   * the count of arcs passed through, an arc being a subprogram call.
   * an histogram of the time spent on the code.

2- The count of arcs needs to be robust to multithreads and SMP architectures.

3- The histogram shall contain datas from all threads of the profiled
   executable.

4- Profiling an application with gprof should have a reasonable performance
   overload.

5- the library shall dump the information in a manner that can be understood by
   the gprof tool furnished by the OS as well as by our own gprof (comming from
   the binutils).

6- the gprof tool shall be able to demangle ada subprogram names.
