![]() |
|
The stupid question is the question not asked | |
PerlMonks |
Re^2: Make Perl use real mallocby creamygoodness (Curate) |
on Mar 15, 2011 at 16:16 UTC ( #893369=note: print w/replies, xml ) | Need Help?? |
It used to be that the FreeBSD port of Valgrind couldn't work with the system Perl, but that was because the FreeBSD system Perl was built with -Dusemymalloc, which Valgrind can't handle. I don't know of a similar problem with any system Perl in a Linux distro, nor have I seen any problems with a system Perl on OS X. Valgrind works with Perl on all those systems. It also works with Perl on FreeBSD if you custom compile your own Perl without -Dusemymalloc.
The only Configure prompts I know of relating to malloc() control PERL_MALLOC_WRAP and usemymalloc:
If we want to work with Valgrind, we definitely don't want to enable usemymalloc (which is disabled by default). The Accflags="-DNO_FANCY_MALLOC -DPLAIN_MALLOC " Configure flag worked as intended -- thanks for the tip! Unfortunately, it did not produce a Perl that allowed us to use Valgrind in place of Test::LeakTrace. Maybe what we want is impossible because of how the global destruction phase works in Perl. If we use a debugging Perl and set PERL_DESTRUCT_LEVEL to 2, Perl will clean up all scalars, regardless of their refcounts. If we don't set PERL_DESTRUCT_LEVEL, it drops everything on the floor and lets the process exit() clean things up. There's no middle ground where it leaves only scalars with leaked refcounts behind.
In Section
Seekers of Perl Wisdom
|
|