<div dir="ltr"><br><div class="gmail_extra"><br><br><div class="gmail_quote">On Wed, Oct 30, 2013 at 1:49 AM, Dennis Luehring <span dir="ltr"><<a href="mailto:dl.soluz@gmx.net" target="_blank">dl.soluz@gmx.net</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">it would be nice to have an clang feature to instrument cleanup freed stack/heap space<br>
with an defined bit pattern (0, 0xfff...,) - this way it would be easier to find stack/heap missuse<br>
<br>
before dtor end(exception chain) the object space will be nulled<br>
before function/method/ctor end(exception chain) stack space will be nulled<br>
before mallocs-free the allocated space is nulled (problematic when using other librarys)<br>
<br>
i little bit in the area of the addresssanitizer but should be faster, but without the auto-detection of missuse<br>
<br>
what do you think<br></blockquote><div><br></div><div>These are two different tasks: heap and stack. </div><div><br></div><div>For heap, you need to change the malloc implementation, not clang/llvm.  </div><div>In fact, many malloc implementation do this already in debug mode. </div>
<div><br></div><div>For stack, yes, you can to this. </div><div>It will be rather expensive -- in some cases more expensive than what asan does (!!).</div><div>Consider you have a function with a large stack frame, e.g. 8K, which is called very frequently.</div>
<div>Your proposal means we need to memset 8K of stack on every call. </div><div>While asan only memsets 1K of shadow on every call. </div><div><br></div><div><br></div><div>--kcc </div><div><br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

<br>
______________________________<u></u>_________________<br>
cfe-dev mailing list<br>
<a href="mailto:cfe-dev@cs.uiuc.edu" target="_blank">cfe-dev@cs.uiuc.edu</a><br>
<a href="http://lists.cs.uiuc.edu/mailman/listinfo/cfe-dev" target="_blank">http://lists.cs.uiuc.edu/<u></u>mailman/listinfo/cfe-dev</a><br>
</blockquote></div><br></div></div>