<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Developer Information</title><meta name="generator" content="DocBook XSL-NS Stylesheets V1.77.1" /><meta name="keywords" content="C++, library, profile" /><meta name="keywords" content="ISO C++, library" /><meta name="keywords" content="ISO C++, runtime, library" /><link rel="home" href="../index.html" title="The GNU C++ Library" /><link rel="up" href="profile_mode.html" title="Chapter 19. Profile Mode" /><link rel="prev" href="profile_mode_impl.html" title="Implementation Issues" /><link rel="next" href="profile_mode_diagnostics.html" title="Diagnostics" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Developer Information</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="profile_mode_impl.html">Prev</a> </td><th width="60%" align="center">Chapter 19. Profile Mode</th><td width="20%" align="right"> <a accesskey="n" href="profile_mode_diagnostics.html">Next</a></td></tr></table><hr /></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="manual.ext.profile_mode.developer"></a>Developer Information</h2></div></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="manual.ext.profile_mode.developer.bigpic"></a>Big Picture</h3></div></div></div><p>The profile mode headers are included with
   <code class="code">-D_GLIBCXX_PROFILE</code> through preprocessor directives in
   <code class="code">include/std/*</code>.
  </p><p>Instrumented implementations are provided in
   <code class="code">include/profile/*</code>.  All instrumentation hooks are macros
   defined in <code class="code">include/profile/profiler.h</code>.
  </p><p>All the implementation of the instrumentation hooks is in
   <code class="code">include/profile/impl/*</code>.  Although all the code gets included,
   thus is publicly visible, only a small number of functions are called from
   outside this directory.  All calls to hook implementations must be
   done through macros defined in <code class="code">profiler.h</code>.  The macro
   must ensure (1) that the call is guarded against reentrance and
   (2) that the call can be turned off at compile time using a
   <code class="code">-D_GLIBCXX_PROFILE_...</code> compiler option.
  </p></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="manual.ext.profile_mode.developer.howto"></a>How To Add A Diagnostic</h3></div></div></div><p>Let's say the diagnostic name is "magic".
  </p><p>If you need to instrument a header not already under
   <code class="code">include/profile/*</code>, first edit the corresponding header
   under <code class="code">include/std/</code> and add a preprocessor directive such
   as the one in <code class="code">include/std/vector</code>:
</p><pre class="programlisting">
#ifdef _GLIBCXX_PROFILE
# include &lt;profile/vector&gt;
#endif
</pre><p>
  </p><p>If the file you need to instrument is not yet under
   <code class="code">include/profile/</code>, make a copy of the one in
   <code class="code">include/debug</code>, or the main implementation.
   You'll need to include the main implementation and inherit the classes
   you want to instrument.  Then define the methods you want to instrument,
   define the instrumentation hooks and add calls to them.
   Look at <code class="code">include/profile/vector</code> for an example.
  </p><p>Add macros for the instrumentation hooks in
   <code class="code">include/profile/impl/profiler.h</code>.
   Hook names must start with <code class="code">__profcxx_</code>.
   Make sure they transform
   in no code with <code class="code">-D_NO_GLBICXX_PROFILE_MAGIC</code>.
   Make sure all calls to any method in namespace <code class="code">__gnu_profile</code>
   is protected against reentrance using macro
   <code class="code">_GLIBCXX_PROFILE_REENTRANCE_GUARD</code>.
   All names of methods in namespace <code class="code">__gnu_profile</code> called from
   <code class="code">profiler.h</code> must start with <code class="code">__trace_magic_</code>.
  </p><p>Add the implementation of the diagnostic.
   </p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p>
      Create new file <code class="code">include/profile/impl/profiler_magic.h</code>.
     </p></li><li class="listitem"><p>
      Define class <code class="code">__magic_info: public __object_info_base</code>.
      This is the representation of a line in the object table.
      The <code class="code">__merge</code> method is used to aggregate information
      across all dynamic instances created at the same call context.
      The <code class="code">__magnitude</code> must return the estimation of the benefit
      as a number of small operations, e.g., number of words copied.
      The <code class="code">__write</code> method is used to produce the raw trace.
      The <code class="code">__advice</code> method is used to produce the advice string.
     </p></li><li class="listitem"><p>
      Define class <code class="code">__magic_stack_info: public __magic_info</code>.
      This defines the content of a line in the stack table.
     </p></li><li class="listitem"><p>
      Define class <code class="code">__trace_magic: public __trace_base&lt;__magic_info,
      __magic_stack_info&gt;</code>.
      It defines the content of the trace associated with this diagnostic.
     </p></li></ul></div><p>
  </p><p>Add initialization and reporting calls in
   <code class="code">include/profile/impl/profiler_trace.h</code>.  Use
   <code class="code">__trace_vector_to_list</code> as an example.
  </p><p>Add documentation in file <code class="code">doc/xml/manual/profile_mode.xml</code>.
  </p></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="profile_mode_impl.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="profile_mode.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="profile_mode_diagnostics.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Implementation Issues </td><td width="20%" align="center"><a accesskey="h" href="../index.html">Home</a></td><td width="40%" align="right" valign="top"> Diagnostics</td></tr></table></div></body></html>