use MALLOC_PERTURB_ ... or lose

David Malcolm dmalcolm at redhat.com
Wed May 5 14:14:28 UTC 2010


On Wed, 2010-05-05 at 11:01 +0200, Jim Meyering wrote:
> If you are into development on glibc-based systems
> and do not set MALLOC_PERTURB_ to a nonzero value, then you
> are missing an easy opportunity to detect subtle bugs early.
> 
> Sure, you can use valgrind, and it will detect whatever a
> MALLOC_PERTURB_ setting would have caught, and more, but it's
> far more expensive and takes some effort, however minimal.
> 
> If you use zsh or bash, put this in one of your startup files:
> 
>     # http://udrepper.livejournal.com/11429.html
>     export MALLOC_PERTURB_=$(($RANDOM % 255 + 1))
> 
> and remember that when you find surprising bugs, that others
> who are also running tests (but without MALLOC_PERTURB_)
> will not see the same failures.
> 
> This is useful enough that it is worth considering for inclusion
> in /etc/profile.

If I'm reading how bash starts up correctly, potentially, we could have
a: 
   /etc/profile.d/malloc-perturb.sh
file, perhaps owned by a malloc-perturb.rpm (perhaps a subpackage of
glibc?  glibc-malloc-perturb) - installing the rpm would give you an
opt-in for whole-system memory debugging.  Might be useful for the
automated QA systems, and for development hosts.

Hope this is helpful
Dave




More information about the devel mailing list