Hi,<br><br>  This patch adds code to the string allocation functions which need to be as fast as<br>possible. I think it might be better to implement this as a profiler module, a profiler can already receive notifications when an object is allocated.<br>
<br>                        Zoltan<br><br><div class="gmail_quote">On Fri, Nov 27, 2009 at 1:08 AM, Marek Habersack <span dir="ltr">&lt;<a href="mailto:grendel@twistedcode.net">grendel@twistedcode.net</a>&gt;</span> wrote:<br>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">Hello everybody,<br>
<br>
        Attached is an update to the original code I posted last week. The update adds support for reporting string allocation locations. It is useful with large code base where strings may be created in one location but used in many others. The code adds a new internal function which does the job of backtrace (3) but supports mono JIT. It&#39;s basically a lighter version of mono_jit_walk_stack which was too heavy for this purpose. The code needs to record stack location for each and every string allocated in the application and the runtime only to store it for later use when IOMAP kicks in. Doing that with mono_stack_walk rendered Mono many times slower and made debugging the application virtually impossible. The patch makes execution just slightly slower than usual. The reporting code uses simple heuristics to select the possible string allocation location - it attempts to ignore all methods from assemblies installed in GAC, from corlib and, should the two checks fail, from a list of assemblies and classes to ignore. This is done based on the premise that the Mono runtime and class libraries are case-sensitive and don&#39;t have the problem some applications might have (there&#39;s actually an instance where that assumption is incorrect - in System.Web we check for existence of web.config, Web.config and Web.Config - but it&#39;s intended :)). The results of the selection algorithm might not always be accurate, but they should be close enough to aid the developer to spot the location where string was allocated.<br>

        Please review and let me know if I can commit.<br><font color="#888888">
<br>
marek<br>
</font><br>_______________________________________________<br>
Mono-devel-list mailing list<br>
<a href="mailto:Mono-devel-list@lists.ximian.com">Mono-devel-list@lists.ximian.com</a><br>
<a href="http://lists.ximian.com/mailman/listinfo/mono-devel-list" target="_blank">http://lists.ximian.com/mailman/listinfo/mono-devel-list</a><br>
<br></blockquote></div><br>