<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  </head>
  <body smarttemplateinserted="true" text="#000000" bgcolor="#FFFFFF">
    <div id="smartTemplate4-template">Hi,<br>
      <br>
      <p>  </p>
      <blockquote type="cite">
        <pre wrap="">In theory a call to _mcount could be replaced with a
compilerproc, which you could then override in the RTL, allowing a way to
add support for various profilers.</pre>
      </blockquote>
      <p>If it became fully overridable,  you could put a callback
        between any branch/line/function and create instrumentalization
        not just for profilers. <br>
      </p>
      A single tracing system for gprof, gcov, american fuzzy lop, etc.
      ...<br>
      <br>
      <br>
      Best,<br>
      Benito </div>
    <br>
    <br>
    <br>
    <div class="moz-cite-prefix">Am 19.02.2018 um 12:01 schrieb Karoly
      Balogh (Charlie/SGR):<br>
    </div>
    <blockquote type="cite"
      cite="mid:alpine.DEB.2.02.1802191152580.29118@scenergy.dfmk.hu">
      <pre wrap="">Hi,

On Mon, 19 Feb 2018, Sven Barth via fpc-devel wrote:

</pre>
      <blockquote type="cite">
        <pre wrap="">It's not the same scenario as heaptrc is entirely working in the RTL
without any compiler extension (aside from the -gh parameter). Profiling
code however would require extensions to the compiler whereby it would
also need to handle exceptions correctly and such things.
</pre>
      </blockquote>
      <pre wrap="">Yes, but it's still worth thinking about how to generalize the current GNU
Profiler support we have, which is messy at places, and of course entirely
depends on GNU Profiler. But it's still mostly about generating a call to
_mcount in various ways, taking the stackframe of various platform ABI
into account. In theory a call to _mcount could be replaced with a
compilerproc, which you could then override in the RTL, allowing a way to
add support for various profilers.

I'm sure it would allow moving out some of the complexity from the
compiler to the RTL, and make things more flexible in the end.

(And GNU profiler's _mcount itself also depends on GCC/GLibc
implementation details per platform.)

Charlie
_______________________________________________
fpc-devel maillist  -  <a class="moz-txt-link-abbreviated" href="mailto:fpc-devel@lists.freepascal.org">fpc-devel@lists.freepascal.org</a>
<a class="moz-txt-link-freetext" href="http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-devel">http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-devel</a>
</pre>
    </blockquote>
    <br>
  </body>
</html>