<div dir="ltr">Excellent :)<div><br></div><div>There's obviously no nice run-time solution using the C++ API, though I guess callgrind/linux-perf can do it - do you have any experience worth sharing there?</div><div><br>
</div><div>Rob.</div></div><div class="gmail_extra"><br><br><div class="gmail_quote">On Mon, Sep 1, 2014 at 7:14 AM, Even Rouault <span dir="ltr"><<a href="mailto:even.rouault@spatialys.com" target="_blank">even.rouault@spatialys.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Le dimanche 31 août 2014 20:50:41, Robert Coup a écrit :<br>
<div class="">> That's cool :) Is there any particular performance penalty to compiling<br>
</div>> *with* OGRAPISPY_ENABLED and then running *without*<br>
> OGR_API_SPY_FILE/OGR_API_SPY_SNAPSHOT_PATH<br>
> set?<br>
<br>
Hi Robert,<br>
<br>
Hopefully no, see for example :<br>
<br>
OGRFeatureH OGR_L_GetNextFeature( OGRLayerH hLayer )<br>
<br>
{<br>
    VALIDATE_POINTER1( hLayer, "OGR_L_GetNextFeature", NULL );<br>
<br>
#ifdef OGRAPISPY_ENABLED<br>
    if( bOGRAPISpyEnabled )<br>
        OGRAPISpy_L_GetNextFeature(hLayer);<br>
#endif<br>
<br>
    return (OGRFeatureH) ((OGRLayer *)hLayer)->GetNextFeature();<br>
}<br>
<br>
I cannot imagine something with less overhead. (if you exclude dynamic binary<br>
patching techniques ;-) )<br>
<br>
OGROpen() and OGR_Dr_CreateDataSource() call a tracing function that tests if<br>
the env. variable is set, and if so set the boolean bOGRAPISpyEnabled.<br>
<span class="HOEnZb"><font color="#888888"><br>
Even<br>
</font></span><div class="HOEnZb"><div class="h5"><br>
><br>
> Rob :)<br>
><br>
><br>
> On Sun, Aug 31, 2014 at 11:34 PM, Even Rouault <<a href="mailto:even.rouault@spatialys.com">even.rouault@spatialys.com</a>><br>
><br>
> wrote:<br>
> > Hi,<br>
> ><br>
> > This will not be of interest for the crowds, but mainly for OGR driver<br>
> > developers (and potentially also to get precise bug reports from users).<br>
> > I'm<br>
> > currently adding update capabilities to the MITAB driver, and while<br>
> > playing with QGIS, there are sometimes sequences of OGR calls that<br>
> > trigger bugs, but<br>
> > that I had issues to replicate afterwards. This spy mechanism enables to<br>
> > have<br>
> > recording of all relevant calls to be able to replicate them exactly<br>
> > afterwards.<br>
> ><br>
> > Doc to use it : <a href="http://www.gdal.org/ograpispy_8h.html" target="_blank">http://www.gdal.org/ograpispy_8h.html</a><br>
> ><br>
> > Related autotest script :<br>
> > <a href="http://svn.osgeo.org/gdal/trunk/autotest/ogr/ograpispy.py" target="_blank">http://svn.osgeo.org/gdal/trunk/autotest/ogr/ograpispy.py</a><br>
> ><br>
> > Even<br>
> ><br>
> > --<br>
> > Spatialys - Geospatial professional services<br>
> > <a href="http://www.spatialys.com" target="_blank">http://www.spatialys.com</a><br>
> > _______________________________________________<br>
> > gdal-dev mailing list<br>
> > <a href="mailto:gdal-dev@lists.osgeo.org">gdal-dev@lists.osgeo.org</a><br>
> > <a href="http://lists.osgeo.org/mailman/listinfo/gdal-dev" target="_blank">http://lists.osgeo.org/mailman/listinfo/gdal-dev</a><br>
<br>
--<br>
Spatialys - Geospatial professional services<br>
<a href="http://www.spatialys.com" target="_blank">http://www.spatialys.com</a><br>
</div></div></blockquote></div><br><br clear="all"><div><br></div>-- <br><div dir="ltr"><font face="arial narrow, sans-serif"><b>Koordinates<br></b>PO Box 1604, Shortland St, Auckland 1140, New Zealand<br>Phone +64-9-966 0433 <a href="https://koordinates.com/about" target="_blank">koordinates.com</a></font></div>

</div>