From: Vincent Pit Date: Tue, 14 Apr 2009 20:32:29 +0000 (+0200) Subject: Don't enable dynamic libraries unloading at END time by default X-Git-Tag: v1.01~2 X-Git-Url: http://git.vpit.fr/?a=commitdiff_plain;h=763b4e655388ce7341369cf73fd7758360821b3d;p=perl%2Fmodules%2FTest-Valgrind.git Don't enable dynamic libraries unloading at END time by default This makes the error stack traces unreadable because valgrind tries to resolve the symbol names after they were unloaded (and not when the error occurs). --- diff --git a/lib/Test/Valgrind.pm b/lib/Test/Valgrind.pm index 5f7414f..46a86c6 100644 --- a/lib/Test/Valgrind.pm +++ b/lib/Test/Valgrind.pm @@ -273,8 +273,20 @@ sub import { }); } +=head1 VARIABLES + +=head2 C<$dl_unload> + +When set to true, all dynamic extensions that were loaded during the analysis will be unloaded at C time by L. + +Since this obfuscates error stack traces, it's disabled by default. + +=cut + +our $dl_unload; + END { - if ($run and eval { require DynaLoader; 1 }) { + if ($dl_unload and $run and eval { require DynaLoader; 1 }) { my @rest; DynaLoader::dl_unload_file($_) or push @rest, $_ for @DynaLoader::dl_librefs; @DynaLoader::dl_librefs = @rest;